还存在,还存在......原本打算星期六日回佛山休息两天(广州太多人了),哎,还是逃不掉写想代码呀,以后坚决不能带电脑在身边,怎么都成习惯了。悲催呀。。。。。。
不说其它的,之前Mediator(Module)写完了,回去想想View怎么写好,想法就是动态加载也符合lua框架,在Mediator(Module)里面管理本模块的VIew,先写个VIew子类BaseUI.lua,是继承于之前的事件系统,这就使得能注册监听和派发(这个就是View内部事件系统,Meditor事件系统是c#这样实现的这样可以用c#写module也可以和lua通信)。
local BaseUI = class("BaseUI",require("Base.EventDispatcher"))
-- BaseUI._uiObject --这样声明一个类对象,并非复制
function BaseUI:ctor(panelName,uiTransform)
--调用父类
BaseUI.super.ctor(self)
self._panelName = panelName
self._uiTransform = uiTransform
end
--注册控件:子类重写
function BaseUI:_RegisterComponents()end
--初始化:子类重写
function BaseUI:_Init()end
--注册事件:子类重写
function BaseUI:_RegisterEvents()end
--删除事件:子类重写
function BaseUI:_RemoveEvents()end
--注册子类
function BaseUI:RegisterUI(name)
return self._uiTransform:Find(name)
end
--显示:需要覆盖
function BaseUI:Show()
self._uiTransform.gameObject:SetActive(true)
end
--隐藏
function BaseUI:Hide( )
self._uiTransform.gameObject:SetActive(false)
end
--关闭
function BaseUI:Close()
self:_RemoveEvents()
if self._uiTransform ~= nil then
UnityEngine.GameObject.Destroy(self._uiTransform.gameObject)
end
end
return BaseUI