了解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 中进行