在 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)
触发事件并传递参数。