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;
}

锚点代码 基本使用


相关文章
|
5月前
|
图形学
Unity 事件系统
Unity 事件系统
|
图形学
Unity碰撞事件和触发事件
大家在刚开始接触Unity的时候,一定要理解碰撞与触发
437 0
Unity碰撞事件和触发事件
|
图形学
Unity 3d 脚本常用事件汇总
Awake()在MonoBehavior创建后就立刻调用,在脚本实例的整个生命周期中,Awake函数仅执行一次;如果游戏对象(即gameObject)的初始状态为关闭状态,那么运行程序,Awake函数不会执行;如果游戏对象的初始状态为开启状态,那么Awake函数会执行;值得注意的一点是,Awake函数的执行与否与脚本实例的状态(启用或禁用)并没有关系,而是与脚本实例所绑定的游戏对象的开关状态有关。
1587 0
|
图形学
Unity 动态加载Animator Event 事件
搬迁原来博客海澜CSDN 前一阵子频繁更改模型,总是手动添加动画事件 animator events一直比较麻烦,我就想能不能动态的生成对应的动画事件呢,然后找了一些资料,试了下感觉还不错,分享给大家,欢迎大家留言交流~需要注意的是修改后的动画事件重新动态加载后依然保留,猜测注册修改的是元数据,除非注销或者程序停止才能恢复。
1904 0