了解Unity编辑器之组件篇Event(七)

Event:用于在对象之间进行通信和交互的机制。它可以帮助你实现触发和响应特定动作或状态的逻辑
一、Event System:用于处理 UI 事件的系统组件

First Selected 属性:定义了在场景加载或 UI 激活时,哪个 UI 元素将成为首选的选中元素。在 Event System 组件的 Inspector 窗口中,你可以通过设置 First Selected 属性来指定首选的选中元素。

Send Navigation Events 属性:指定是否发送导航事件。当该属性启用时,UI 元素之间的导航事件(例如按下 Tab 键)将触发 Unity 中的 Navigation 事件。

Drag Threshold 属性:定义了鼠标或触摸输入的拖拽阈值。当鼠标或触摸输入的移动距离超过这个阈值时,会被识别为拖拽操作。

Add Default Input Modules 按钮:添加一个Standalone Input Module组件

二、Event Trigger:允许你将特定的事件与一个或多个响应动作关联起来。每个事件类型都对应一个特定的事件,例如点击按钮、进入触发器区域等。当该事件发生时,与之关联的响应动作将会被触发执行。

Add New Event Type按钮:使用"Add New Event Type"按钮,你可以选择要添加的新事件类型。点击该按钮后,会弹出一个下拉菜单,列出了可用的事件类型选项。这些选项包括常见的UI事件类型,如点击(Pointer Click)、进入触发器区域(Pointer Enter)等。通过使用"Add New Event Type"按钮,你可以扩展Event Trigger组件的功能,为你的游戏或应用程序添加更多的交互性和响应性。

三、Graphic Raycaster:用于处理用户输入射线检测和UI交互的组件

Ignore Reversed Graphics(忽略逆转图形):当忽略逆转图形被勾选时,Graphic Raycaster会忽略反向(背面)的图形。通常情况下,Graphic Raycaster会对碰撞发生器(collider)后面的图形进行检测,但勾选该选项后,它将不会对背面的图形进行任何检测,从而提高性能。

Blocking Objects(阻塞对象):定义了哪些类型的图形对象会阻塞(block)射线的检测。有以下四种选项:

None:没有任何对象会阻塞射线的检测。

Two D:2D对象会阻塞射线的检测。

Three D:3D对象会阻塞射线的检测。

All:所有对象都会阻塞射线的检测

Blocking Mask:是一个Layer Mask(层遮罩),它允许你指定一个特定的图层(或几个图层)来阻塞射线的检测。通过选择相应的图层,你可以定义只有具有指定图层的对象才能阻塞射线的检测。

四、Physics 2D Raycaster:用于2D物理射线检测和UI元素交互的组件

Event Mask(事件遮罩):是一个Layer Mask(层遮罩),它允许你定义一个特定的层(或几个层)来确定射线检测所触发的事件。通过选择相应的图层,你可以控制射线检测时哪些对象能够触发事件,哪些对象被忽略。

Max Ray Intersections(最大射线交点数):用于设置射线检测的最大交点数。

如果将其设置为0(默认值),则不会对射线的交点数量进行限制。如果将其设置为一个正整数,射线检测将会在达到此交点数后停止。这可以用于限制射线的范围,以提高性能。

五、Physics Raycaster:用于3D物理射线检测和UI元素交互的组件

属性信息可以参考Physics 2D Raycaster组件

六、Standalone Input Module:处理鼠标和键盘的输入,并将其转化为Unity的事件,用于驱动游戏逻辑或处理UI交互。它是构建与鼠标和键盘交互的应用程序或游戏的基础组件

Horizontal Axis(水平轴):指定用于水平移动的输入轴的名称。例如,可以使用"Horizontal"作为水平轴的名称。

Vertical Axis(垂直轴):指定用于垂直移动的输入轴的名称。例如,可以使用"Vertical"作为垂直轴的名称。

Submit Button(提交按钮):指定用于提交操作的输入按钮的名称。当用户按下该按钮时,会触发相应的提交事件。

Cancel Button(取消按钮):指定用于取消操作的输入按钮的名称。当用户按下该按钮时,会触发相应的取消事件。

Input Actions Per Second(每秒输入动作数):指定每秒处理的最大输入动作数。这用于限制输入事件的频率,以避免过多的输入事件导致性能问题。

Repeat Delay(重复延迟):指定重复触发按钮事件之前的延迟时间。当用户按住按钮不放时,按钮事件将在按下后的一段时间后开始持续触发。

Force Module Active(强制模块激活):当勾选此选项时,该输入模块将始终处于活动状态,即使在层次结构中被禁用的对象也一样。这可以确保输入事件的响应性。

七、Touch Input Module(Deprecated):用于处理触摸输入的模块

Force Module Active:定义了是否强制激活Touch Input Module模块,即使在游戏对象的层次结构中被禁用的情况下也会被启用。当勾选Force Module Active时,即使Touch Input Module所在的游戏对象及其父级对象被禁用,该模块仍然会被激活并处理触摸输入事件。这意味着即使对象不可见或不活动,该模块仍可以接收并处理触摸输入。

这个属性对于确保触摸输入的响应性很有用,因为它可以绕过对象禁用状态,确保Touch Input Module始终处于活动状态。

需要注意的是,Touch Input Module被标记为已弃用,不再推荐使用。现在触摸输入的处理在 StandaloneInputModule 中进行

相关推荐
在路上看风景13 小时前
4.5 顶点和片元
unity
LYOBOYI12321 小时前
vscode界面美化
ide·vscode·编辑器
浔川python社1 天前
关于浔川代码编辑器 v5.0 网页版上线时间的通知
编辑器
在路上看风景1 天前
31. Unity 异步加载的底层细节
unity
天人合一peng1 天前
Unity中做表头时像work中整个调整宽窄
unity
浔川python社1 天前
浔川代码编辑器 v5.0 上线时间公布
编辑器
山峰哥1 天前
数据库工程与SQL调优——从索引策略到查询优化的深度实践
数据库·sql·性能优化·编辑器
Doro再努力1 天前
Vim 快速上手实操手册:从入门到生产环境实战
linux·编辑器·vim
Doro再努力1 天前
【Linux操作系统10】Makefile深度解析:从依赖推导到有效编译
android·linux·运维·服务器·编辑器·vim
小李也疯狂2 天前
Unity 中的立方体贴图(Cubemaps)
unity·游戏引擎·贴图·cubemap