public override void OnExit(System.Action callback) { //캐릭터 정보도 다삭제 var enumerator = townUnitList.GetEnumerator(); while (enumerator.MoveNext()) { Destroy(enumerator.Current.Value); } townUnitList.Clear(); if (CameraManager.instance.mainCamera.gameObject.GetComponentInChildren <ColorCorrectionCurves> ()) { CameraManager.instance.mainCamera.gameObject.GetComponentInChildren <ColorCorrectionCurves> ().enabled = false; } CameraManager.instance.mainCamera.clearFlags = CameraClearFlags.Skybox; //< 마을에서 사용했던 리소스들은 삭제 AssetbundleLoader.ClearAssetList(); SoundManager.instance.Clean(); effectPool.SetDestroy(); UIHelper.SetMainCameraActive(true); base.OnExit(callback); TownActive = false; //StructureMgr.instance.DemolishAll(); //NetData.instance.VillageUnitDic.Clear(); }
void OnLevelWasLoaded(int level) { if (Application.loadedLevelName != "maintown") { return; } System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch(); sw.Start(); long time1 = SceneManager.instance.showStopWatchTimer("MainTown scene loaded, TownState.OnLevelWasLoaded start"); ResourceMgr.Clear(); bAddtiveSceneLoadFinish = false; NativeHelper.instance.DisableNavUI(); TownActive = true; //< 인게임에서 사용했던 리소스들도 삭제 AssetbundleLoader.ClearAssetList(); SoundManager.instance.Clean(); //< 맵 로드 IsMapLoad = true; SceneSetting(); SetupMainCamera(true, GAME_MODE.NONE); effectPool = PoolManager.Pools["Effect"]; //CameraManager.instance.mainCamera.GetComponent<CameraMouseZoom>().SetInitPos(); MapEnvironmentSetting(Application.loadedLevelName); // move to here. sendQueryForHeroAndTown(); // 여기서 컷씬플레이여부 비교판단 해야함. // if (NeedPlayTownCutScene ()) { // return; // } StartCoroutine(OnLevelWasLoaded2Part1()); StartCoroutine(OnLevelWasLoaded2Part2()); long time2 = SceneManager.instance.showStopWatchTimer("TownState.OnLevelWasLoaded end"); Debug.Log("<color=green>[StopWatch]</color> OnLevelLoaded take time " + ((time2 - time1) / 1000f)); sw.Stop(); }