using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.AI; namespace WK { /// /// 类似UnityEvent但是更轻量 /// public class ScopedEvent { public delegate void EventHandler(params object[] args); private List m_Handlers = new List(); public void AddListener(EventHandler handler) { if(handler == null) { return; } if (m_Handlers.Contains(handler)) return; m_Handlers.Add(handler); } public void RemoveListener(EventHandler handler) { if (handler == null) { return; } m_Handlers.Remove(handler); } public bool HasHandler(EventHandler handler) { return m_Handlers.Contains(handler); } public void Invoke(params object[] args) { for(int i = 0; i < m_Handlers.Count; ++i) { m_Handlers[i](args); } } } }