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


  • 相关阅读:
    linux计算命令的执行时间
    vim中保存其中部分内容到其它文件的方法
    vim打开文本文件末尾显示^M的解决办法
    sshd服务安全优化-修改ssh端口
    内网环境搭建yum仓库
    LVS-dr负载均衡原理及示例搭建
    go 搭建并行处理管道
    mac QuiteTime快捷键
    第十六章 分布式爬虫--准备工作
    mac Idea快捷键
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/7149884.html
Copyright © 2011-2022 走看看