项目记录23--unity-tolua框架MediatorManager

我还存在!!!!!!!

这个类是管理所有模块,没什么好说就是个单例,之后还需要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


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值