.lua是打不进assetbundle里面的,所以扩展名不用.lua,而使用.bytes
所有的lua脚本都继承自LuaForm(继承自UIFormBase) 然后就可以使用OnInit OnOpen OnClose OnBeforeDestroy
映射到View的对应方法上
然后执行控制器上对应的方法
print('启动GameInit')
require "Common/Define"
require "Common/SysEventId"
require "Common/UIFormId"
GameInit = {};
local this = GameInit;
function GameInit.Init()
this.InitCtrlAndViews();
this.LoadDataTables();
this.InitProto();
end
function GameInit.InitCtrlAndViews()
--一个模块
require('Modules/Task/UI_TaskCtrl');
require('Modules/Task/UI_TaskView');
--一个模块
require('Modules/Loading/UI_LoadingCtrl');
require('Modules/Loading/UI_LoadingView');
end
function GameInit.LoadDataTables()
--章表
require('DataNode/DataTable/Create/ChapterEntity');
require('DataNode/DataTable/Create/ChapterDBModel');
ChapterDBModel.LoadList();
--任务表
require('DataNode/DataTable/Create/TaskEntity');
require('DataNode/DataTable/Create/TaskDBModel');
TaskDBModel.LoadList();
end
local m_TotalTableCount = 0; --总共需要加载的表格数量
local m_CurrLoadTableCount =0; --当前已加载的表格数量
--总共需要加载的表格数量++
function GameInit.AddTotalLoadTableCount()
m_TotalTableCount = m_TotalTableCount + 1;
end
--单个数据表加载完毕回调
function GameInit.LoadOneTableComplete()
--当前已加载的表格数量++
m_CurrLoadTableCount = m_CurrLoadTableCount + 1;
if(m_TotalTableCount==m_CurrLoadTableCount) then
--所有数据表加载完毕
GameEntry.Event.CommonEvent:Dispatch(SysEventId.LoadLuaDataTableComplete);
end
end
--初始化通讯协议
function GameInit.InitProto()
require("Common/json");
require('DataNode/Proto/ProtoCodeDef');
require('DataNode/ProtoHandler/SocketProtoListenerForLua');
SocketProtoListenerForLua.AddProtoListener();
end