博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
事件管理器
阅读量:6856 次
发布时间:2019-06-26

本文共 1191 字,大约阅读时间需要 3 分钟。

项目开发过程中经常会用到代理事件,为方便管理,避免代码混乱,需要一个总的事件管理器:

using UnityEngine;using System.Collections;using System.Collections.Generic;using System;public class EventManager
{ private static Dictionary
>> eventDic = new Dictionary
>>(); ///
/// 添加事件 /// ///
///
public static void AddEvent(EventType type, Action
act) { if (eventDic.ContainsKey(type)) { if(!eventDic[type].Contains(act)) { eventDic[type].Add(act); } }else { List
> list = new List
>(); eventDic.Add(type, list); list.Add(act); } } ///
/// 移除事件 /// ///
public static void RemoveEvent(EventType type) { if (eventDic.ContainsKey(type)) { eventDic.Remove(type); } } public static void RemoveEvent(EventType type, Action
act) { if (eventDic.ContainsKey(type)) { if (eventDic[type].Contains(act)) { eventDic[type].Remove(act); } } } ///
/// 触发事件 /// ///
///
public static void TriggerEvent(EventType type , T data) { if (eventDic.ContainsKey(type)) { List
> list = eventDic[type]; foreach (var callback in list) { callback(data); } } }}public enum EventType{ None = 0, Event1 = 1, Event2 = 2,}

 

转载于:https://www.cnblogs.com/zjw007/p/6127212.html

你可能感兴趣的文章
高通肯花300亿美元收购恩智浦吗?
查看>>
英国Ofcom确定物联网频段 充分利用VHF甚高频部分频段
查看>>
《Linux内核精髓:精通Linux内核必会的75个绝技》一HACK #6 使用localmodconfig缩短编译时间...
查看>>
CNCC 2016 | 南京大学黄宜华教授 50 张 PPT 剖析 Alluxio 及其应用
查看>>
盘点:视频监控行业的潜在商机
查看>>
机器视觉在安防行业是如何应用的
查看>>
IIS URL Rewrite 重定向域名到www
查看>>
Generating Text with Deep Reinforcement Learning
查看>>
如果你没被WannaCry感染就一定要小心Adylkuzz
查看>>
HR:2017/2018年数据中心驱动400Gbps部署
查看>>
单元测试覆盖工具coverlipse
查看>>
Jmeter分布式部署文档
查看>>
微软打算用DNA存储数据 但成本和速度仍是个大问题
查看>>
使用Java向properties存数据
查看>>
产能过剩的光伏电池,是否还是未来的朝阳产业?
查看>>
如何在SaaS企业及服务市场上站稳脚跟
查看>>
移动端App测试实用指南(下)
查看>>
为什么没有一个软件质量保证的RUP工作流程
查看>>
海尔王淼:智能家居互联互通先解决用户需求
查看>>
商务部:中国将采取一切措施维护光伏企业合法权益
查看>>