public void Initialize(Action onComplete) { if (onComplete != null) { onStartupFunc = onComplete; } //取消 Destroy 对象 InitConsole(); InitUIRoot(); InitResolution(); //平台初始化 AppPlatform.Initialize(); //基本设置 Screen.sleepTimeout = SleepTimeout.NeverSleep; Application.targetFrameRate = Global.FrameRate; UnityEngine.QualitySettings.vSyncCount = Global.VSyncCount; //挂载管理器并初始化 ManagerCollect.Instance.AddManager <TaskManager>(ManagerName.Task); ManagerCollect.Instance.AddManager <AssetLoadManager>(ManagerName.AssetLoad); ManagerCollect.Instance.AddManager <SoundManager>(ManagerName.Sound); ManagerCollect.Instance.AddManager <GestureManager>(ManagerName.Gesture); //创建运行时资源目录 FileUtil.CreateFolder(AppPlatform.RuntimeAssetsPath); AssetsUpdater.Run(() => { LoadAssetbundleManifest(); }); }
public void OnLevelUnloading() { //it appears, the game caches vanilla prefabs even when exiting to main menu, and stations won't load properly on reloading from main menu AssetsUpdater.UpdateBuildingsMetroPaths(_cachedMode, true); var go = GameObject.Find("MetroOverhaulUISetup"); if (go != null) { GameObject.Destroy(go); } var transportInfo = PrefabCollection <TransportInfo> .FindLoaded("Metro"); transportInfo.m_netLayer = ItemClass.Layer.MetroTunnels; transportInfo.m_stationLayer = ItemClass.Layer.MetroTunnels; }
public void OnLevelLoaded(LoadMode mode) { _cachedMode = mode; while (LateBuildUpQueue.Count > 0) { try { LateBuildUpQueue.Dequeue().Invoke(); } catch (Exception e) { UIView.library.ShowModal <ExceptionPanel>("ExceptionPanel").SetMessage("Enable asset in Content Manager!", e.Message, false); } } if (_updater == null) { _updater = new AssetsUpdater(); _updater.UpdateExistingAssets(mode); } AssetsUpdater.UpdateBuildingsMetroPaths(mode, false); if (mode == LoadMode.NewGame || mode == LoadMode.LoadGame || mode == LoadMode.NewGameFromScenario) { SimulationManager.instance.AddAction(DespawnVanillaMetro); var gameObject = new GameObject("MetroOverhaulUISetup"); gameObject.AddComponent <UpgradeSetup>(); gameObject.AddComponent <StyleSelectionUI>(); if (OptionsWrapper <Options> .Options.metroUi) { UIView.GetAView().AddUIComponent(typeof(MetroStationCustomizerUI)); } var transportInfo = PrefabCollection <TransportInfo> .FindLoaded("Metro"); transportInfo.m_netLayer = ItemClass.Layer.Default | ItemClass.Layer.MetroTunnels; transportInfo.m_stationLayer = ItemClass.Layer.Default | ItemClass.Layer.MetroTunnels; } }