void Start() { GameObject.DontDestroyOnLoad(this.gameObject); //CS init TimerMgr.Initilize(); //计时器 AtlasMgr.Instance.initialize(); //图集管理器初始化 ResMgr.Instance.initialize(); //资源接口管理类初始化 ManifestMgr.Instance.initialize(); //依赖文件初始化 PoolMgr.Instance.initialize(); //对象池初始化 LoaderMgr.Instance.initialize(); //加载管理器初始化 UIMgr.Instance.initialize(); //画布初始化 不需要初始化 //Lua init luaAgent = new LuaEnv(); //全局lua代理 luaAgent.DoString("require 'LuaInit'"); //Lua初始化 在Lua那边 scriptEnv = luaAgent.NewTable(); LuaTable meta = luaAgent.NewTable(); meta.Set("__index", luaAgent.Global); scriptEnv.SetMetaTable(meta); meta.Dispose(); scriptEnv.Set("self", this); foreach (var injection in injections) { scriptEnv.Set(injection.name, injection.value); } luaAgent.DoString("require 'LuaBehavior'", "LuaBehaviour", scriptEnv); // Action luaAwake = scriptEnv.Get<Action>("awake"); scriptEnv.Get("start", out luaStart); scriptEnv.Get("update", out luaUpdate); scriptEnv.Get("onTick", out luaTick); scriptEnv.Get("ondestroy", out luaOnDestroy); if (luaStart != null) { luaStart(); } // initClock(); }