当前位置:网站首页>事件管理之一
事件管理之一
2022-04-23 06:27:00 【老少年】
public enum EUIMgrEvent
{
onUILogInOpend,
onUILogInClose,
onUIHintOpend,
onUIHintClose,
onUIWorkOpend,
onUIWorkClose,
onUIShopOpend,
onUIShopClose
}
先创建几个事件类型,然后对事件类型进行添加,触发,删除等操作..........
1.创建字典保存事件
Dictionary<EUIMgrEvent, Action<object, object[]>> _phList = new Dictionary<EUIMgrEvent, Action<object, object[]>>();
2.添加事件
public void addEventHandler(EUIMgrEvent eventID,Action<object, object[]> handler)
{
if (_phList == null) return;
if (_phList.ContainsKey(eventID))
{
Debug.LogError(string.Format("error: event[ {0} ] already exists", eventID));
return;
}
_phList[eventID] = handler;
}
3.删除事件
public void delEventHandler(EUIMgrEvent eventID)
{
if (_phList == null) return;
if (!_phList.ContainsKey(eventID))
{
Debug.LogError(string.Format("error: event[ {0} ] not exists", eventID));
return;
}
_phList.Remove(eventID);
}
4.触发事件
public void fireEvent(EUIMgrEvent eventID,object sender ,object[] args)
{
if (_phList == null) return;
if (!_phList.ContainsKey(eventID)){
return;
}
var action = _phList[eventID];
if (action == null) return;
action(sender, args);
}
5.重置事件系统
public void Reset()
{
if (_phList == null) return;
_phList.Clear();
_phList = null;
}
版权声明
本文为[老少年]所创,转载请带上原文链接,感谢
https://blog.csdn.net/laoshaonian/article/details/89315914
边栏推荐
猜你喜欢
随机推荐
C# 文本文件的查找及替换(WinForm)
C# 多个矩形围成的多边形标注位置的问题
RGB颜色转HEX进制与单位换算
判断字符串首尾是否包含目标参数:startsWith()、endsWith()方法
js之DOM学习三种创建元素的方式
利用Lambda表达式解决c#文件名排序问题(是100大还是11大的问题)
Mvcc (multi version concurrency control)
Authorization+Token+JWT
[Ted series] how does a habit change my life
js之作用域、作用域链、全局变量和局部变量
State synchronization and frame synchronization
Implementation of MySQL persistence
超级宝典&编程指南(红蓝宝书)-读书笔记
BTREE, B + tree and hash index
设置了body的最大宽度,但是为什么body的背景颜色还铺满整个页面?
【自我激励系列】到底是什么真正阻碍了你?
给定区段范围内字符串自生成代码
MySQL index
面经的总结
基于NLP的软件安全研究(一)









