在 Unity 中,常用的 UnityEngine.Events
中的几个重要的事件处理函数包括:
UnityEvent
UnityEvent
是 Unity 提供的一种事件系统,可以用来实现脚本与场景中的对象之间的互动。它可以用来定义和响应事件,如按钮点击、物体碰撞等。- 示例用法:
using UnityEngine; using UnityEngine.Events; public class ExampleScript : MonoBehaviour { public UnityEvent onTriggerEnterEvent; void OnTriggerEnter(Collider other) { // 触发事件 onTriggerEnterEvent.Invoke(); } }
- 在上面的示例中,
onTriggerEnterEvent
是一个UnityEvent
,当物体进入触发器时,调用Invoke()
方法触发事件。
UnityAction
UnityAction
是一个委托类型,用于表示不带参数的回调函数。通常与UnityEvent
配合使用,作为事件响应的具体函数。- 示例用法:
using UnityEngine; using UnityEngine.Events; public class ButtonClickHandler : MonoBehaviour { public UnityEvent onClickEvent; void Start() { // 添加事件监听 onClickEvent.AddListener(OnClick); } void OnClick() { Debug.Log("Button Clicked!"); } }
- 在这个例子中,
onClickEvent
是一个UnityEvent
,OnClick()
是一个UnityAction
,通过AddListener()
将OnClick
方法添加为onClickEvent
的监听器。
UnityEvent<T>
UnityEvent<T>
是泛型版本的UnityEvent
,用于传递一个参数的事件。- 示例用法:
using UnityEngine; using UnityEngine.Events; public class DamageEvent : MonoBehaviour { public UnityEvent<float> onTakeDamageEvent; void TakeDamage(float amount) { // 触发事件并传递参数 onTakeDamageEvent.Invoke(amount); } }
- 在这个例子中,
onTakeDamageEvent
是一个接受float
参数的事件,当调用TakeDamage(float amount)
方法时,通过Invoke(amount)
触发事件并传递参数。