zoukankan      html  css  js  c++  java
  • 项目记录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


  • 相关阅读:
    集合及特殊集合arrayList
    二维数组、多维数组
    一维数组

    for循坏的穷举与迭代,while、do while循环
    1.兔子生兔子问题2.打印菱形3.求100以内质数的和
    for循环嵌套
    复习题
    循环语句
    分支语句
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/7149884.html
Copyright © 2011-2022 走看看