资源简介
用于unity3d的延迟消息机
具体参考http://blog.csdn.net/hale445566/article/details/38357123

代码片段和文件信息
using UnityEngine;
using System.Collections.Generic;
using System;
//发送信息的方法签名 消息处理成功 返回true else false
public delegate bool Message();
public delegate bool Message(T arg0);
public delegate bool Message(T arg0U arg1V arg2X arg3);
///
/// 信息中心
///
public class NotificationCenter
{
//事件表 key是事件名称 value是方法委托
public static Dictionary eventTable = new Dictionary(100);
//错误消息 已有收听者
public static NotificationException HasListenerException(string msg)
{
return new NotificationException(string.Format(“消息机添加收听者错误 \“{0}\“已有该收听者,相同收听者只能有一个“ msg));
}
//错误消息 没有收听者
public static NotificationException NoListenerException(string msg) {
return new NotificationException(string.Format(“消息机发送消息错误 \“{0}\“没有收听者“ msg));
}
//错误消息 没有方法
public static NotificationException NoDelegateException(string msg)
{
return new NotificationException(string.Format(“消息机发送消息错误 \“{0}\“收听者没有该委托方法“ msg));
}
//错误消息 方法转换错误
public static NotificationException NullMessageException(string msg)
{
return new NotificationException(string.Format(“消息机发送消息错误 \“{0}\“方法转换错误转换后的message为空可能是方法参数不对“ msg));
}
//检查收听者是否可添加
public static void CheckAddListener(string lis) {
//已有收听者 发送错误消息
if (eventTable.ContainsKey(lis))
throw HasListenerException(lis);
}
//检查收听者是否可移除
public static void CheckRemoveListener(string lis)
{
//没有收听者 发送错误消息
if (!eventTable.ContainsKey(lis))
throw NoListenerException(lis);
}
//检查消息是否可发送
public static void CheckBroadcastListener(string lis)
{
//如果没有该方法收听者
if(!eventTable.ContainsKey(lis))
throw NoListenerException(lis);
Delegate d;
//如果方法收听者没有该方法
if (!eventTable.TryGetValue(lis out d))
throw NoDelegateException(lis);
}
//添加收听者
public static void AddListener(string lisMessage mess) {
CheckAddListener(lis);
eventTable.Add(lis mess);
}
public static void AddListener(string lis Message mess)
{
CheckAddListener(lis);
eventTable.Add(lis mess);
}
public static void AddListener(string lis Message mess)
{
CheckAddListener(lis);
eventTable.Add(lis mess);
}
//移除收听者
public static void RemoveListener(string lis) {
CheckRemoveListener(lis);
eventTable.Remove(lis);
}
//发送信息 接受者成功处理 返回true else false
public static bool Broadcase(string lis)
{
CheckBroadcastListener(lis);
Delegate d;
eventTable.TryGetValue(lis out d);
Message me = d as Message;
if (me != null)
{
if (me())
return true;
else return false;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5378 2014-08-03 13:08 NotificationCenter.cs
文件 1897 2014-08-03 13:21 TimeClock.cs
----------- --------- ---------- ----- ----
7275 2
相关资源
- 登录注册界面.zip48872
-
Actionsc
ript 1.0实现能跟随鼠标运动的 -
imx6qSBP的jli
nk初始化脚本 - 数字华容道
- jstl-api-1.2和jstl-impl-1.2
- 基于MVC模式的会员管理系统
- Unity3D登录界面工程
- unity3d反编译工具
- 仿126 网易 163 邮箱 界面
-
UnityWebPla
yerFull -
Macromedia Flash MX Actionsc
ript for Fun an - Unity纪念碑谷.rar
- Unity3d实现扭动挤压浏览效果
- reportdesign基于lodop的vue简单打印设计工
- unity案例入门坦克大战源码
- Unity3D游戏开发.pdf 宣雨松著完整高清
- Unity3D版水果忍者
- unity3d爆炸特效包
- unity3d_见缝插针源码及报告.zip
- Unity3d车库场景模型
- js特效40套
- unity3d 警察动画模型
- unity3D 新手引导遮罩,支持圆形和矩形
- unity3d枪支武器包FPS第一人称射击游戏
- unity3d制作贪吃蛇
- unity3D暴力街区射击大战游戏源码
- Unity3D 实战视频教程 保卫萝卜 2D 游戏
- unity3d调用中央气象局城市天气数据,
- Unity 3D Paint in 3D (1.7.3)
- 2014年最新最好的Unity3d圣典之中文脚本
评论
共有 条评论