1: ResourceManager 用来加载素材和重写加载素材函数的 2:LuaManager 其中的StarMain函数是用来执行lua脚本的 3:Packager 用来打包资源的,框架提供的是4.X版本的打包方式,当然,可以用5.X方式打包 4:AppConst 这是选择更新模式,如果UpdateMode为falese则从本地提取资源更新,如果为true就从WebUrl提供的服务器地址去检测MD5码进行更新 5:AppFacade.Instance.GetManager<LuaManager>(ManagerName.Lua).CallFunction(request.callBackName,request.asset); //这可以使得lua脚本有回调的功能 使得lua脚本可以有回调函数功能 6:LuaHelper 为了使得lua与C#进行交互,方便获得各种Manager对象而设计的桥梁 7:CustomSettings A:可以查看lua脚本可以访问的C#类型 B:如果要生成自定义的C#脚本供Lua调用的接口,要在CustomSettings中加多个_GT(typeof(自定义C#类的类名)) 8:lua调用C#的例子: function Main() print('Begin Load Object') LuaHelper=LuaFramework.LuaHelper resMgr=LuaHelper.GetResManager() resMgr:LoadPrefab('player','Player','OnLoadFinish') end function OnLoadFinish(obj) print('Lua Load') local go=UnityEngine.GameObject.Instantiate(obj) end --场景切换通知 function OnLevelWasLoaded(level) Time.timeSinceLevelLoad = 0 End 9:如果想知道有哪些C#脚本可供lua调用,只需要搜索Wrap,然后“_“换成“.“,最后把Wrap去掉就是调用的形式 10:event.lua中提供了许多已经封装好monobehaviour的自动触发函数的lua调用,eg: local function Start(o) print('Beat') self.luaObj = o --self.shotPos = self.go.transform.Find('ShotPos') self.shotPos = UnityEngine.Transform.Find(self.trans, 'ShotPos') --查找炮弹发射位置子对象 UpdateBeat:Add(self.luaObj.Update,self) End 这里的意思是将这个脚本的Update函数加入到UpdateBeat里面,这样就可以每一帧都去跑这个函数了!
|