项目记录23--unity-tolua框架MediatorManager
2016-02-25 20:22
513 查看
我还存在!!!!!!!
这个类是管理所有模块,没什么好说就是个单例,之后还需要UIManager,SceneManager,DataManager。。。。慢慢来,不是还要上班做死的嘛,坑爹。
MediatorManager = class("MediatorManager")
--构造方法
function MediatorManager:ctor( )
self._mediators = {}
end
--单例
function MediatorManager:Instance()
if self.instance == nil then
self.instance = self.new()
end
return self.instance
end
--增加一个mediator通过Type dataq : int 或者 GameEvent
function MediatorManager:AddMediator(mediatorType,data)
local tempMediator = self._mediators[mediatorType]
--创建mediator
if tempMediator == nil then
if mediatorType == MediatorType.LoginMeditor then
tempMediator = require("Mediator.LoginMediator.LoginMediator").new()
else
print("no this MediatorType : "..mediatorType)
--不存在type直接返回
return
end
--将medator存起来
if tempMediator ~= nil then
self._mediators[mediatorType] = tempMediator
end
end
--发送消息
if tempMediator ~= nil and data ~= nil then
self:SendEvent(data)
end
end
--发送消息
function MediatorManager:SendEvent(data)
print("SendData type : " .. type(data))
--是否发送消息: int GameEvent
if type(data) == "number" then
local e = GameEvent.New(data)
Notifier.Instance:SendEvent(e)
elseif type(data) == "userdata" then
Notifier.Instance:SendEvent(data)
end
end
--移除:注意不能再AddMediator命令里面做RemoverMediator
function MediatorManager:RemoveMediator(moduleType)
local tempMediator = self._mediators[moduleType]
if tempMediator ~= nil then
tempMediator:Exit() --先调用mediator
self._mediators[moduleType] = nil --设置为空
end
end
这个类是管理所有模块,没什么好说就是个单例,之后还需要UIManager,SceneManager,DataManager。。。。慢慢来,不是还要上班做死的嘛,坑爹。
MediatorManager = class("MediatorManager")
--构造方法
function MediatorManager:ctor( )
self._mediators = {}
end
--单例
function MediatorManager:Instance()
if self.instance == nil then
self.instance = self.new()
end
return self.instance
end
--增加一个mediator通过Type dataq : int 或者 GameEvent
function MediatorManager:AddMediator(mediatorType,data)
local tempMediator = self._mediators[mediatorType]
--创建mediator
if tempMediator == nil then
if mediatorType == MediatorType.LoginMeditor then
tempMediator = require("Mediator.LoginMediator.LoginMediator").new()
else
print("no this MediatorType : "..mediatorType)
--不存在type直接返回
return
end
--将medator存起来
if tempMediator ~= nil then
self._mediators[mediatorType] = tempMediator
end
end
--发送消息
if tempMediator ~= nil and data ~= nil then
self:SendEvent(data)
end
end
--发送消息
function MediatorManager:SendEvent(data)
print("SendData type : " .. type(data))
--是否发送消息: int GameEvent
if type(data) == "number" then
local e = GameEvent.New(data)
Notifier.Instance:SendEvent(e)
elseif type(data) == "userdata" then
Notifier.Instance:SendEvent(data)
end
end
--移除:注意不能再AddMediator命令里面做RemoverMediator
function MediatorManager:RemoveMediator(moduleType)
local tempMediator = self._mediators[moduleType]
if tempMediator ~= nil then
tempMediator:Exit() --先调用mediator
self._mediators[moduleType] = nil --设置为空
end
end
相关文章推荐
- Unity 5.x 导入教学Demo
- Unity3D占用内存太大的解决方法
- Protobuf-net 在Unity3D中使用的小技巧 (解决JIT错误)
- Unity C# 脚本教程
- C# 基础教程(结合Unity)
- Unity3d中关于Awake()、Start()、OnEnable()等的执行顺序关系
- Unity3D 合并模型 个人理解
- Unity性能优化
- Unity3D内置着色器
- Unity MeshFilter导出OBJ文件
- Unity 偏振3D左右格式画面制作
- Unity 实现倒计时 协程
- Unity调用Android保存图片到相册
- Unity移动端播放视频
- Unity保存录音文件到本地(2)
- Chrome无法使用Unity Web Player的解决方案
- Unity保存录音文件到本地(1)
- Unity 角色模型优化要点
- Unity Shader : Ghost(残影)
- Unity3d之截图方法