zoukankan      html  css  js  c++  java
  • unity 消息中心

    using System.Collections.Generic;
    using System;
    
    public class MessageCenter
    {
        private static MessageCenter instance;
    
        public static MessageCenter Instance
        {
            get { if (instance == null) instance = new MessageCenter();return instance; }
            
        }
    
        Action<object> action;
    
        private static Dictionary<string, List<Action<object>>> dic = new Dictionary<string, List<Action<object>>>();
    
        /// <summary>
        /// 增加监听
        /// </summary>
        /// <param name="str"></param>
        /// <param name="action"></param>
        public static void AddListener(string str,Action<object> action)
        {
            if(dic.ContainsKey(str))
            {
                dic[str].Add(action);
            }
            else
            {
                List<Action<object>> list = new List<Action<object>>();
                list.Add(action);
                dic.Add(str, list);
            }
        }
    
        /// <summary>
        /// 移除一个监听
        /// </summary>
        /// <param name="str"></param>
        public static void RemoveListener(string str)
        {
            if(!dic.ContainsKey(str))
            {
                return;
            }
            for(int i=0;i<dic[str].Count;i++)
            {
                dic[str].Clear();
            }
        }
    
        /// <summary>
        /// 发送消息
        /// </summary>
        /// <param name="str"></param>
        /// <param name="obj"></param>
        public static void SendMessage(string str,object obj)
        {
            if(dic.ContainsKey(str))
            {
                for(int i=0;i<dic[str].Count;i++)
                {
                    dic[str][i](obj);
                }
            }
        }
    
        /// <summary>
        /// 清空监听
        /// </summary>
        public static void Clear()
        {
            dic.Clear();
        }
    }
  • 相关阅读:
    P5468 [NOI2019]回家路线
    P1919 【模板】A*B Problem升级版(FFT快速傅里叶)
    P4390 [BOI2007]Mokia 摩基亚
    P4234 最小差值生成树
    P5459 [BJOI2016]回转寿司
    P2173 [ZJOI2012]网络
    P2163 [SHOI2007]园丁的烦恼
    P3826 [NOI2017]蔬菜
    P3327 [SDOI2015]约数个数和
    P1829 [国家集训队]Crash的数字表格 / JZPTAB
  • 原文地址:https://www.cnblogs.com/0315cz/p/8350790.html
Copyright © 2011-2022 走看看