require("utils.EngineClass") require("systool.RequireSystool") require("game.common.LuaMemManager") LuaMemManager.New() local require = require GameModule = GameModule or {} local GameModule = GameModule local Time = Time function GameModule.Main() QualitySettings.streamingMipmapsActive = false -- 测试 -- if ApplicationPlatform == RuntimePlatform.Android or tostring(ApplicationPlatform) == tostring(RuntimePlatform.Android) then -- QualitySettings.streamingMipmapsActive = true -- QualitySettings.streamingMipmapsMemoryBudget = 2048 -- QualitySettings.streamingMipmapsMaxLevelReduction = 1 -- QualitySettings.streamingMipmapsAddAllCameras = true -- end GlobalUserOperateTime = 0 --输出 assetbundle 包更新下载加载卸载日志 --AppConst.OpenDownloadLog = true OpenGameDebugLog = AppConst.OpenDownloadLog require("clientconfig.ClientConfig") require("config.Config") require("utils.RequireUtils") require("game.common.RequireCommon") require("sysinfo.SysInfoCtrl") require("newgameui.RequireGameUI") require("language.RequireLanguage") require("game.login.LoginController") require("game.common.OpenFun") require("game.common.StepPackModule") require("utils.LuaFPS") require("game.login.PreLoadBeforeLogin") require("game.login.LoginBg") math.randomseed(tostring(os.time()):reverse():sub(1, 6)) GameError.New() SystemRuntimePlatform.Init() -- if SystemRuntimePlatform.IsAndroid() then -- G_DEBUG_MODE = true -- end SystemMemoryLevel.Init() SetGameFrameRate() InitResLoadSpeed() InitEngineData() GlobalTimerQuest = TimerQuest.New() GameConfigUtil.Load() GamePlatformRes.Load() ShaderTools.Load() GlobalEventSystem = EventSystem.New() Runner:getInstance():AddRunObj(GlobalEventSystem, 3) GameModule.runner = Runner:getInstance() lua_resM = LuaResManager:getInstance() lua_logM = LuaLogManager:getInstance() lua_viewM = LuaViewManager:getInstance() LuaMemManager:getInstance():InitInfo() CookieWrapper.New() lua_soundM = LuaSoundManager:getInstance() lua_soundM:LoadSetting() lua_settingM = GameSettingManager:getInstance() lua_settingM:ApplySetting() UpdateBeat:Add(GameModule.Update) LateUpdateBeat:Add(GameModule.LateUpdate) LoginBg.New() SDKManager:RegisterCallbackFunc( SDKUtil.SDKCallBack ) StepPackModule.New() co.InitTempVectorArray() GameDontDestroyOnLoad() local function onLoadLogicModule() print("onLoadLogicModule") --开始加载逻辑模块 LoginController.Instance:ShowLoading() GlobleLogicFile = GlobleLogicFile or {} require("game.common.ModulesController") end GlobalEventSystem:Bind(EventName.START_LOAD_LOGIC_MODULE,onLoadLogicModule) local game_start = function() print("PreLoadProgressDelete") --进入场景后销毁预加载的登录创角资源 if GameModule.PreLoadProgress then GameModule.PreLoadProgress:DeleteMe() GameModule.PreLoadProgress = nil end end GlobalEventSystem:Bind(EventName.GAME_START,game_start) local function onDBLoadCompleted() print("onDBLoadCompleted") require("game.luaError.LuaErrorController") require("game.login.LoginModel") require("game.login.AccountView") require("game.login.AccountServerItem") require("game.login.ServerItem") require("gameinput.GameInputManager") LuaErrorController.New() SysInfoCtrl.New() GameInputManager.New() UserMsgAdapter:getInstance() LoginController.New() --关闭引擎的加载界面 PreLoadViewState = false Util.ClosePreLoadView() --显示登录界面 GlobalEventSystem:Fire(LoginStateEvent.SHOW_LOGIN_VIEW) end GlobalEventSystem:Bind(EventName.DB_DATA_LOAD_COMPLETED,onDBLoadCompleted) local function onPreloadLoginResCompleted() --首次预加载回调才进行 if PreLoadViewState then print("onPreloadLoginResCompleted") ConfigItemMgr.New() CheckAndroid9SystemHair() end end GlobalEventSystem:Bind(EventName.PRELOAD_LOGIN_RES_COMPLETED,onPreloadLoginResCompleted) local start_init_login = function() print("OnPreLoadProgress") if GameModule.PreLoadProgress == nil or GameModule.PreLoadProgress._use_delete_method then GameModule.PreLoadProgress = PreLoadBeforeLogin.New() end end GlobalEventSystem:Bind(LoginStateEvent.START_LOGIN_MODULE,start_init_login) local function onUILoadCompleted() print("onUILoadCompleted") start_init_login() end GlobalEventSystem:Bind(EventName.GAME_UI_LOAD_COMPLETED,onUILoadCompleted) --开始预加载资源 UiFactory.StartPreload() end function GameModule.Update() GameModule.runner:Update( Time.time, Time.deltaTime ) --开始逻辑模块后分帧加载系统文件 if not GameModule.init_modules_complete and GlobleLogicFile then GameModule.GameLogicModuleInit() end end function GameModule.LateUpdate() GameModule.runner:LateUpdate( Time.time, Time.deltaTime ) end function GameModule.GameLogicModuleInit() for i = 1,3 do GlobleInitLogicIndex = GlobleInitLogicIndex or 1 require(GlobleLogicFile[GlobleInitLogicIndex]) if GlobleInitLogicIndex == #GlobleLogicFile then GlobleLogicFile = nil ModulesController.New() GameModule.init_modules_complete = true LoginController.Instance:CloseLoading() --逻辑模块全部加载完成后触发获取角色数据流程 GlobalEventSystem:Fire(EventName.START_LOHIN_ROLE_ACTION) return else GlobleInitLogicIndex = GlobleInitLogicIndex + 1 end end end