private IEnumerator ChangeLoginInternal(Action sceneLoadComplete = null) { GameEventManager.RaiseEvent(GameEventTypes.ExitScene); string sceneBundleName = string.Format("scenes/scene_login.bundle"); Resources.UnloadUnusedAssets(); m_operation = AssetBundleManager.LoadLevelAsync(sceneBundleName, "login", false); while (!m_operation.IsDone()) { m_progress = m_operation.Progress; yield return(null); } m_operation.UnloadAssetBundle(); AssetBundleManager.Clear(); GameEventManager.RaiseEvent(GameEventTypes.EnterScene, 0); if (sceneLoadComplete != null) { sceneLoadComplete(); } }
private IEnumerator ChangeSceneInternal(int sceneCfgID, Action sceneLoadComplete = null) { GameEventManager.RaiseEvent(GameEventTypes.ExitScene); GameEventManager.EnableEventFiring = false; string assetName = ConfigManager.Get <SceneCfgLoader>().GetSceneAssetName(sceneCfgID); string sceneBundleName = string.Format("scenes/scene_{0}.bundle", assetName.ToLower()); m_operation = AssetBundleManager.LoadLevelAsync(sceneBundleName, assetName, false); m_progress = 0f; while (!m_operation.IsDone()) { m_progress = m_operation.Progress; yield return(null); } m_operation.UnloadAssetBundle(); AssetBundleManager.Clear(); GameEventManager.EnableEventFiring = true; AssetBundleManager.UnloadAssetBundle(string.Format("scenes/{0}.bundle", assetName)); var trunkMgrGo = GameObject.FindGameObjectWithTag("SceneTrunkMgr"); if (trunkMgrGo != null) { trunkMgr = trunkMgrGo.GetComponent <SceneTrunkMgr>(); } // 等待主角周围地块加载完毕 if (trunkMgr != null) { while (trunkMgr.HasLoadingTrunk()) { yield return(null); } } GameEventManager.RaiseEvent(GameEventTypes.EnterScene, sceneCfgID); if (sceneLoadComplete != null) { sceneLoadComplete(); } }
static int _m_Clear(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); AssetBundleManager gen_to_be_invoked = (AssetBundleManager)translator.FastGetCSObj(L, 1); { gen_to_be_invoked.Clear( ); return(0); } } catch (System.Exception gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + gen_e)); } }
private void GameQuit() { DG.Tweening.DOTween.isQuitting = true; SaveUnityTXTLog(); InputManager.Clear(); EntityFactory.Instance.Clear(); UTopNameManager.Instance.Clear(); USpeedUI.Blood.UBloodManager.Instance.Clear(); SoundManager.Clear(); SkinManager.Clear(); PrefabManager.Clear(); ImageSetting.Clear(); if (AnimationEffectFactory.Instance) { AnimationEffectFactory.Instance.UnLoadAnimEffectData(); } if (LightingEffectFactory.Instance) { LightingEffectFactory.Instance.ClearCache(); LightingEffectFactory.Instance.ClearWhenGameEnd(); } if (Application.isEditor) { Shader.globalMaximumLOD = int.MaxValue; } ImageEffectManager.API_GameEnd(); SafeZoneEffectManager.Clear(); //清除资源 AssetBundleManager.Clear(); SceneResInfoManager.ClearOnAppQuit(); Resources.UnloadUnusedAssets(); //GC.Collect(); }
//public void OnGUI() //{ // GUILayout.BeginVertical(); // string[] names = QualitySettings.names; // for (var i = 0; i < names.Length; i++) // { // if (GUILayout.Button(names[i])) // { // QualitySettings.SetQualityLevel(i, true); // } // } // GUILayout.EndVertical(); //} public void OnApplicationQuit() { //清除资源 AssetBundleManager.Clear(); }
private void DrawOptimtizedControlPlane() { Rect rt = new Rect(0, Screen.height * 0.6f, 200, 200); Rect rt1 = new Rect(0, 0, 200, Screen.height); OptimtizedControlScrollPos = GUI.BeginScrollView(rt, OptimtizedControlScrollPos, rt1); GUILayout.BeginVertical("Box"); GUILayout.Label("调试面板"); GUILayout.Space(5.0f); OptimitzedControlPlane.Instance.EnabledNormalFloatFont = GUILayout.Toggle(OptimitzedControlPlane.Instance.EnabledNormalFloatFont, "开启普通飘字"); OptimitzedControlPlane.Instance.EnabledLightingEffect = GUILayout.Toggle(OptimitzedControlPlane.Instance.EnabledLightingEffect, "开启光效"); LightingEffectFactory.ClosedOptimiezed = GUILayout.Toggle(LightingEffectFactory.ClosedOptimiezed, "关闭光效优化"); //if (GUILayout.Button("UI调试面板")) //{ // UIWindowDebugPlane.OpenUIWindowDebugPlane(); //} if (GUILayout.Button("打印光效信息")) { Trace.Log("-------------------EffectDebugInfo------------------------"); foreach (string s in EntityViewCommandHandler.lightingEffectDebugInfo) { Trace.Log(s); } Trace.Log("-------------------EffectDebugInfo------------------------"); SkinManager.TraceCullingList(); System.Diagnostics.Process.Start(Initialize.LogFileName); } if (GUILayout.Button("刷新场景碰撞体")) { SceneResInfoManager.RefershAllCollider(); } if (GUILayout.Button("刷新人物碰撞体")) { EntityFactory.RefershPlayerCollider(); } if (SceneResInfoManager.ShowMeshColliderFlags) { if (GUILayout.Button("关闭碰撞体显示")) { SceneResInfoManager.ShowMeshColliderFlags = false; SceneResInfoManager.HideMeshCollider(); } } else { if (GUILayout.Button("打开碰撞体显示")) { SceneResInfoManager.ShowMeshColliderFlags = true; SceneResInfoManager.ShowMeshCollider(); } } if (!OptimitzedControlPlane.Instance.EnabledImageEffects) { if (GUILayout.Button("开启后处理")) { OptimitzedControlPlane.Instance.EnabledImageEffects = true; foreach (ImageEffects.ImageEffectManager ins in ImageEffects.ImageEffectManager.ImageEffectManagerTable.Values) { if (ins) { ins.enabled = true; } } } } else { if (GUILayout.Button("关闭后处理")) { OptimitzedControlPlane.Instance.EnabledImageEffects = false; foreach (ImageEffects.ImageEffectManager ins in ImageEffects.ImageEffectManager.ImageEffectManagerTable.Values) { if (ins) { ins.enabled = false; } } } } if (GUILayout.Button("输出pickCount信息")) { Trace.Log("--------------pickcount Debug info:-----------"); ICollection <U3D_Render.EntityView> heros = EntityFactory.GetPlayerList(); foreach (U3D_Render.EntityView hero in heros) { if (hero.StateMachine) { Trace.Log(hero.StateMachine.name + " " + hero.StateMachine.pickableCount); } } System.Diagnostics.Process.Start(Initialize.LogFileName); } if (!InputManager.foceOpenInput) { if (GUILayout.Button("强制开启输入")) { InputManager.foceOpenInput = true; } } else { if (GUILayout.Button("强制关闭输入")) { InputManager.foceOpenInput = false; } } if (!OptimitzedControlPlane.Instance.EanableUI) { if (GUILayout.Button("开启UI")) { OptimitzedControlPlane.Instance.EanableUI = true; USpeedUI.UISystem.Instance.OpenUI(); } } else { if (GUILayout.Button("关闭UI")) { OptimitzedControlPlane.Instance.EanableUI = false; USpeedUI.UISystem.Instance.CloseUI(); } } if (GUILayout.Button("取消帧数限制")) { QualitySettings.vSyncCount = 0; Application.targetFrameRate = 0; } if (GUILayout.Button("删除所有UI")) { if (USpeedUI.UISystem.Instance) { GameObject.Destroy(USpeedUI.UISystem.Instance.gameObject); } if (USpeedUI.Blood.UBloodManager.Instance) { GameObject.Destroy(USpeedUI.Blood.UBloodManager.Instance.gameObject); } if (USpeedUI.UTopNameManager.Instance) { GameObject.Destroy(USpeedUI.UTopNameManager.Instance.gameObject); } } if (AssetBundleManager.isOnRunTimeMode) { if (GUILayout.Button("卸载所有资源(不可逆)")) { AssetBundleManager.Clear(); } } if (!Application.isEditor) { if (GUILayout.Button("资源调试面板")) { DrawAssetDebugInfo = true; } } GUILayout.EndVertical(); GUI.EndScrollView(); }