unity3d-EventSystem(事件)

简介: unity3d-EventSystem(事件)

EventSystem


class in UnityEngine.EventSystems/继承自:EventSystems.UIBehaviour

描述


处理输入、射线投射和发送事件。

EventSystem 负责处理 Unity 场景中的 事件。一个场景应当只包含一个 EventSystem。EventSystem 与许多模块 结合使用,大多时候只是将状态和委托功能保存到 特定的可重写组件中。

当 EventSystem 启动时,它会搜索附加到同一 GameObject 的任何 BaseInputModule, 并将其添加到内部列表中。在更新时,每个附加模块都会收到 一个 UpdateModules 调用,模块可以在其中修改内部状态。所有模块更新完成后, 活动模块将执行 Process 调用。 此时可以进行自定义模块处理。

静态变量

变量名 作用
current 基本使用 返回当前 EventSystem。

变量


image.png

公共函数


image.png

继承的成员


变量


image.png

公共函数


函数名 作用
BroadcastMessage 调用此游戏对象或其任何子项中的每个 MonoBehaviour 上名为 methodName 的方法。
CompareTag 此游戏对象是否使用 tag 进行了标记?
GetComponent 如果游戏对象附加了类型为 type 的组件,则将其返回,否则返回 null。
GetComponentInChildren 使用深度首次搜索返回 GameObject 或其任何子项中类型为 type 的组件。
GetComponentInParent 返回 GameObject 或其任何父项中类型为 type 的组件。
GetComponents 返回 GameObject 中类型为 type 的所有组件。
GetComponentsInChildren 返回 GameObject 或其任何子项中类型为 type 的所有组件。
GetComponentsInParent 返回 GameObject 或其任何父项中类型为 type 的所有组件。
SendMessage 调用此游戏对象中的每个 MonoBehaviour 上名为 methodName 的方法。
SendMessageUpwards 调用此游戏对象中的每个 MonoBehaviour 上或此行为的每个父级上名为 methodName 的方法。
CancelInvoke 取消该 MonoBehaviour 上的所有 Invoke 调用。
Invoke 在 time 秒后调用 methodName 方法。
InvokeRepeating 在 time 秒后调用 methodName 方法,然后每 repeatRate 秒调用一次。
IsInvoking 是否有任何待处理的 methodName 调用?
StartCoroutine 启动一个协同程序。
StopAllCoroutines 停止在该行为上运行的所有协同程序。
StopCoroutine 停止在该行为上运行的第一个名为 methodName 的协同程序或存储在 routine 中的协同程序。
GetInstanceID 返回对象的实例 ID。
ToString 返回 GameObject 的名称。
IsActive 如果 GameObject 和 Component 处于激活状态,则返回 true。
IsDestroyed 如果行为的原生表示已被销毁,则返回 true。

静态函数


image.png

消息


消息名 作用
Awake Awake 在加载脚本实例时调用。
FixedUpdate 用于物理计算且独立于帧率的 MonoBehaviour.FixedUpdate 消息。
LateUpdate 如果启用了 Behaviour,则每帧调用 LateUpdate。
OnAnimatorIK 用于设置动画 IK(反向运动学)的回调。
OnAnimatorMove 用于处理动画移动以修改根运动的回调。
OnApplicationFocus 当玩家获得或失去焦点时,发送给所有 GameObject。
OnApplicationPause 当应用程序暂停时,发送给所有 GameObject。
OnApplicationQuit 在应用程序退出前,发送给所有游戏对象。
OnAudioFilterRead 如果实现了 OnAudioFilterRead,Unity 将在音频 DSP 链中插入一个自定义滤波器。
OnBecameInvisible OnBecameInvisible 在渲染器对任何摄像机都不可见时调用。
OnBecameVisible OnBecameVisible 在渲染器变为对任意摄像机可见时调用。
OnCollisionEnter 当该碰撞体/刚体已开始接触另一个刚体/碰撞体时,调用 OnCollisionEnter。
OnCollisionEnter2D 当传入碰撞体与该对象的碰撞体接触时发送(仅限 2D 物理)。
OnCollisionExit 当该碰撞体/刚体已停止接触另一个刚体/碰撞体时,调用 OnCollisionExit。
OnCollisionExit2D 当另一个对象上的碰撞体停止接触该对象的碰撞体时发送(仅限 2D 物理)。
OnCollisionStay 对应正在接触刚体/碰撞体的每一个碰撞体/刚体,每帧调用一次 :ref::OnCollisionStay。
OnCollisionStay2D 在另一个对象上的碰撞体正在接触该对象的碰撞体时发送每个帧(仅限 2D 物理)。
OnConnectedToServer 成功连接到服务器后在客户端上调用。
OnControllerColliderHit 当该控制器在执行 Move 时撞到碰撞体时调用 OnControllerColliderHit。
OnDestroy 销毁附加的行为将导致游戏或场景收到 OnDestroy。
OnDisconnectedFromServer 当连接丢失或与服务器断开连接时,在客户端上调用。
OnDrawGizmos 如果您想绘制能够选择并且始终绘制的辅助图标,则可以实现 OnDrawGizmos。
OnDrawGizmosSelected 如果选择了对象,则实现 OnDrawGizmosSelected 来绘制辅助图标。
OnEnable 该函数在对象变为启用和激活状态时调用。
OnFailedToConnect 出于某种原因连接尝试失败时,在客户端上调用。
OnFailedToConnectToMasterServer 在连接到 MasterServer 时发生问题的情况下,在客户端或服务器上调用。
OnGUI 系统调用 OnGUI 来渲染和处理 GUI 事件。
OnJointBreak 在附加到相同游戏对象的关节断开时调用。
OnJointBreak2D 在附加到相同游戏对象的 Joint2D 断开时调用。
OnMasterServerEvent 在从 MasterServer 报告事件时,在客户端或服务器上调用。
OnMouseDown 当用户在 GUIElement 或 Collider 上按下鼠标按钮时,将调用 OnMouseDown。
OnMouseDrag 当用户单击 GUIElement 或 Collider 并仍然按住鼠标时,将调用 OnMouseDrag。
OnMouseEnter 当鼠标进入 GUIElement 或 Collider 时调用。
OnMouseExit 当鼠标不再处于 GUIElement 或 Collider 上方时调用。
OnMouseOver 当鼠标悬停在 GUIElement 或 Collider 上时,每帧调用一次。
OnMouseUp 当用户松开鼠标按钮时,将调用 OnMouseUp。
OnMouseUpAsButton 松开鼠标时,仅当鼠标在按下时所在的 GUIElement 或 Collider 上时,才调用 OnMouseUpAsButton。
OnNetworkInstantiate 在已通过 Network.Instantiate 进行网络实例化的对象上调用。
OnParticleCollision 当粒子击中碰撞体时,将调用 OnParticleCollision。
OnParticleSystemStopped 系统中的所有粒子都死亡时,便会调用 OnParticleSystemStopped,然后将不再产生新粒子。在调用 Stop 之后,或者超过非循环系统的 Duration 属性时,将停止产生新粒子。
OnParticleTrigger 粒子系统中的任何粒子满足触发模块中的条件时,将调用 OnParticleTrigger。
OnPlayerConnected 每当有新玩家成功连接,就在服务器上调用。
OnPlayerDisconnected 每当有玩家与服务器断开连接,就在服务器上调用。
OnPostRender 在摄像机完成场景渲染后,将调用 OnPostRender。
OnPreCull 摄像机剔除场景前,将调用 OnPreCull。
OnPreRender 在摄像机开始渲染场景前,将调用 OnPreRender。
OnRenderImage OnRenderImage 在图像的所有渲染操作全部完成后调用。
OnRenderObject 在摄像机渲染场景后,将调用 OnRenderObject。
OnSerializeNetworkView 用于在网络视图监视的脚本中自定义变量同步。
OnServerInitialized 每当调用 Network.InitializeServer 并且完成时,对该服务器调用该函数。
OnTransformChildrenChanged 当 GameObject 的变换的子项列表发生更改时,将调用该函数。
OnTransformParentChanged 当 GameObject 的变换的父属性发生更改时,将调用该函数。
OnTriggerEnter GameObject 与另一 GameObject 碰撞时,将调用 OnTriggerEnter。
OnTriggerEnter2D 当另一个对象进入附加到该对象的触发碰撞体时发送(仅限 2D 物理)。
OnTriggerExit 当 Collider other 已停止接触该触发器时调用 OnTriggerExit。
OnTriggerExit2D 当另一个对象离开附加到该对象的触发碰撞体时发送(仅限 2D 物理)。
OnTriggerStay 对于接触触发器的每一个 Collider /other/,每次物理更新调用一次 OnTriggerStay。
OnTriggerStay2D 在另一个对象位于附加到该对象的触发碰撞体之内时发送每个帧(仅限 2D 物理)。
OnValidate 加载脚本后或 Inspector 中的值发生更改时,将调用该函数(只能在 Editor 中调用)。
OnWillRenderObject 如果对象可见并且不是 UI 元素,则为每个摄像机调用 OnWillRenderObject。
Reset 重置为默认值。
Start 在首次调用任何 Update 方法之前启用脚本时,在帧上调用 Start。
Update 如果启用了 MonoBehaviour,则每帧调用 Update。

代码演示:

1.判断是否和UI互动privateboolInteractiveWithUI()
{
if (EventSystem.current!=null&&EventSystem.current.IsPointerOverGameObject())
   {
returntrue;
   }
returnfalse;
}

锚点代码 基本使用


相关文章
|
4月前
|
图形学 Android开发
小功能⭐️Unity调用Android常用事件
小功能⭐️Unity调用Android常用事件
|
3月前
|
图形学 开发者 UED
Unity游戏开发必备技巧:深度解析事件系统运用之道,从生命周期回调到自定义事件,打造高效逻辑与流畅交互的全方位指南
【8月更文挑战第31天】在游戏开发中,事件系统是连接游戏逻辑与用户交互的关键。Unity提供了多种机制处理事件,如MonoBehaviour生命周期回调、事件系统组件及自定义事件。本文介绍如何有效利用这些机制,包括创建自定义事件和使用Unity内置事件系统提升游戏体验。通过合理安排代码执行时机,如在Awake、Start等方法中初始化组件,以及使用委托和事件处理复杂逻辑,可以使游戏更加高效且逻辑清晰。掌握这些技巧有助于开发者更好地应对游戏开发挑战。
163 0
|
4月前
|
图形学 C# 开发者
全面掌握Unity游戏开发核心技术:C#脚本编程从入门到精通——详解生命周期方法、事件处理与面向对象设计,助你打造高效稳定的互动娱乐体验
【8月更文挑战第31天】Unity 是一款强大的游戏开发平台,支持多种编程语言,其中 C# 最为常用。本文介绍 C# 在 Unity 中的应用,涵盖脚本生命周期、常用函数、事件处理及面向对象编程等核心概念。通过具体示例,展示如何编写有效的 C# 脚本,包括 Start、Update 和 LateUpdate 等生命周期方法,以及碰撞检测和类继承等高级技巧,帮助开发者掌握 Unity 脚本编程基础,提升游戏开发效率。
109 0
|
4月前
|
图形学
小功能⭐️Unity Button按钮实现鼠标移入移出触发相应事件
小功能⭐️Unity Button按钮实现鼠标移入移出触发相应事件
|
4月前
|
图形学
|
6月前
|
安全 图形学
【unity实战】事件(Event)的基本实战使用
【unity实战】事件(Event)的基本实战使用
250 1
|
6月前
|
存储 图形学
【unity小技巧】unity事件系统创建通用的对象交互的功能
【unity小技巧】unity事件系统创建通用的对象交互的功能
73 0
|
6月前
|
图形学
【unity实战】基于权重的随机事件(附项目源码)
【unity实战】基于权重的随机事件(附项目源码)
48 0
|
图形学
Unity 事件系统
Unity 事件系统
118 0