admin 管理员组

文章数量: 887039


2024年1月9日发(作者:网站在线优化工具)

///

添加事件监听器 /// 事件类型 /// 事件处理器 public void AddListener(string eventType, andler eventHandler) { EventListener invoker; if (!Value(eventType, out invoker)) { invoker = new EventListener(); (eventType, invoker); } andler += eventHandler; } /// 移除事件监听器 /// 事件类型 /// 事件处理器 public void RemoveListener(string eventType, andler eventHandler) { EventListener invoker; if (Value(eventType, out invoker)) andler -= eventHandler; } /// 是否已经拥有该类型的事件 /// 事件类型 public bool HasListener(string eventType) { return nsKey(eventType); } /// 派发事件 /// 事件类型 public void DispatchEvent(string eventType, params object[] args) { EventListener invoker; if (Value(eventType, out invoker)) { EventArgs evt; if (args == null || == 0) { evt = new EventArgs(eventType); } else { evt = new EventArgs(eventType, args); } (evt); } } /// 清理所有事件监听器 public void Clear() { foreach (EventListener value in ) { (); } (); } }}事件监听器

using UnityEngine;using ;///

派发事件测试 public class EventDispatchTest : MonoBehaviour { public void Call() { chEvent(_CLICK); chEvent(_CLICK2, "参数1"); }

}事件接收测试using UnityEngine;using ;///

处理事件测试 public class EventHandleTest : MonoBehaviour { // 定义事件名称 public const string ON_CLICK = "ON_CLICK"; // 定义事件名称 public const string ON_CLICK2 = "ON_CLICK2"; private void Start () { // 添加监听器 if (!tener(ON_CLICK)) tener(ON_CLICK, OnClick); if (!tener(ON_CLICK2)) tener(ON_CLICK2, OnClick2); } // 处理点击事件 public void OnClick(EventArgs evt) { print(); print(); } // 带参数的点击事件 public void OnClick2(EventArgs evt) { print(); print([0]); } // 移除监听器 private void OnDestroy() { Listener(ON_CLICK, OnClick); Listener(ON_CLICK2, OnClick2); }}


本文标签: 事件 监听器 类型 网站 测试