Exemplo n.º 1
0
        static public void Init(bool forceReset = false)
        {
            if (forceReset)
            {
                Clear();
            }
            if (_inited)
            {
                return;
            }

            using (ExeTimer.GetEndIndent("LuaManagerImpl.Init", x => _PerfLogger.Info(x)))
            {
                luaEnv = new LuaEnv();

                //jit interpreter
                if (LuaManager.LUAJIT_ENABLE)
                {
                    luaEnv.DoString("\nif jit then\n\n  jit.off();jit.flush()\n\nend");
                }

                //load lua base files
                foreach (var f in files)
                {
                    luaEnv.DoString(LoadLua(LuaManager.LUA_ROOT_MENU + f.Replace(".lua", "")), f);
                }

                _inited = true;
                LoadLuaFiles();

                //ConfigManager.Init();

                HSLogManager.GetLogger("Booter").Info("lua vm 装载成功");
            }
        }
Exemplo n.º 2
0
        static public void Clear()
        {
            _inited = false;

            //ConfigManager.Reset();

            if (_cachedFunc != null && _cachedFunc.Count > 0)
            {
                foreach (var cf in _cachedFunc.Values)
                {
                    cf.Dispose(); //Added By George
                }
                _cachedFunc.Clear();
                //HSUtils.Log("Destroying lua cachedFunc finished.");
            }

            if (luaEnv != null)
            {
                luaEnv.FullGc();
                //HSUtils.Log ("★★★Destroying lua state..");
                luaEnv = null;
                HSLogManager.GetLogger("Booter").Debug("★★★★ Destroying lua state finished★★★★ ");
            }

            ClearLuaMapper();
        }
Exemplo n.º 3
0
        /// <summary>
        /// 除了注入、注册、或者绑定外不会有任何代码运行。
        /// </summary>
        public static void ColdBind()
        {
            _OTRH.TryRunOnce(() =>
            {
                Debug.Log("↓↓↓↓↓↓↓↓↓ Game.ColdBind ↓↓↓↓↓↓↓↓↓↓↓");
                HSBootApp.IceBind();
                IceBind();
                HSBootApp.ColdBind(ConStr.GLOBAL_DESKEY,
#if UNITY_EDITOR
                                   null,
#else
                                   HSConfigTableInitHelperPhone.Create(),
#endif
                                   ConStr.PrefabPoolConfig);
                Debug.Log("↑↑↑↑↑↑↑↑↑ Game.ColdBind ↑↑↑↑↑↑↑↑↑↑↑");
                HSLogManager.GetLogger("Booter").Info("ColdBind完成。");
            });
        }