您的位置:首页 > 移动开发 > Unity3D

项目记录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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: