コード例 #1
0
ファイル: EventCenter.cs プロジェクト: withcloud/UNITY_CODE
 //无参,单个返回值监听委托的移除
 public static void RemoveListener <T>(GameEventType eventType, CallBack_Return <T> callBack)
 {
     //若通过以上检测则说明没有发生移除错误,则将对应委托
     OnListenerRemoving(eventType, callBack);
     eventDic[eventType] = (CallBack_Return <T>)eventDic[eventType] - callBack;
     if (eventDic[eventType] == null)
     {
         eventDic.Remove(eventType);
     }
 }
コード例 #2
0
ファイル: EventCenter.cs プロジェクト: withcloud/UNITY_CODE
    //广播无参事件
    public static T Boardcast <T>(GameEventType eventType)
    {
        Delegate d;

        if (eventDic.TryGetValue(eventType, out d))
        {
            CallBack_Return <T> callBack = d as CallBack_Return <T>;
            if (callBack != null)
            {
                return(callBack());
            }
            else
            {
                throw new Exception(String.Format("不存在对应的委托值,所要广播的委托类型为{1}", eventType.GetType()));
            }
        }
        return(default(T));
    }
コード例 #3
0
ファイル: EventCenter.cs プロジェクト: withcloud/UNITY_CODE
 //添加无参,一个返回值监听委托
 public static void AddListener <T>(GameEventType eventType, CallBack_Return <T> callBack)
 {
     OnListenerAdding(eventType, callBack);
     eventDic[eventType] = (CallBack_Return <T>)eventDic[eventType] + callBack;
 }