Unity 中,常用的 UnityEngine.Events 中的几个重要的事件处理函数

发布于:2024-07-07 ⋅ 阅读:(147) ⋅ 点赞:(0)

在 Unity 中,常用的 UnityEngine.Events 中的几个重要的事件处理函数包括:

  1. UnityEvent

    • UnityEvent 是 Unity 提供的一种事件系统,可以用来实现脚本与场景中的对象之间的互动。它可以用来定义和响应事件,如按钮点击、物体碰撞等。
    • 示例用法:
      using UnityEngine;
      using UnityEngine.Events;
      
      public class ExampleScript : MonoBehaviour
      {
          public UnityEvent onTriggerEnterEvent;
      
          void OnTriggerEnter(Collider other)
          {
              // 触发事件
              onTriggerEnterEvent.Invoke();
          }
      }
      
    • 在上面的示例中,onTriggerEnterEvent 是一个 UnityEvent,当物体进入触发器时,调用 Invoke() 方法触发事件。
  2. 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 是一个 UnityEventOnClick() 是一个 UnityAction,通过 AddListener() 将 OnClick 方法添加为 onClickEvent 的监听器。
  3. 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) 触发事件并传递参数。

网站公告

今日签到

点亮在社区的每一天
去签到