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);
}
}
}
}