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

相关推荐
晚风吹红霞44 分钟前
Vim编辑器从入门到熟练 —— 三种模式与常用命令详解
linux·编辑器·vim
想不明白的过度思考者1 小时前
Unity学习笔记——虚拟摇杆实现笔记(事件触发器的使用、UGUI 坐标转换)
笔记·学习·unity
魔士于安2 小时前
unity volumefog带各种demo第一人称 wsad 穿墙控制
游戏·unity·游戏引擎·贴图·模型
SWAGGY..2 小时前
Linux系统编程:(十一)进程状态&&Linux中的僵尸状态
linux·服务器·编辑器·vim
魔士于安4 小时前
红色文化馆技术文档
前端·unity·游戏引擎·贴图·模型
LONGZETECH4 小时前
Unity 3D工业级教育软件实战:200+无人机装调任务的碰撞检测与交互落地
3d·unity·架构·游戏引擎·无人机·交互·cocos2d
淡海水4 小时前
08-认知篇-对比-injectfix深度解析
unity·c#·热更新·clr·hybrid·injectfix
迪普阳光开朗很健康5 小时前
BepInEx 插件开发文档中文翻译 - 项目分享
unity·bepinex
元气少女小圆丶16 小时前
SenseGlove Nova 2+Unity开发笔记1
笔记·学习·unity
mxwin17 小时前
Unity URP下新技术MSSPT 取代SSR和光线追踪
unity·游戏引擎·shader