void Update() { if (subScene == null) // 初期化済んでない { return; } // デバグコマンド if (gameState.DebugToggleFired) { gameState.DebugToggleFired = false; debugService.ToggleUiEnabled(); } // ロード完了してるなら if ((nextSubScene != null) && (loadSubSceneCoroutine == null)) { Debug.Log("SubSceneDispose " + subScene.name + " -> " + nextSubScene.name); // 現シーン破棄 subScene.Dispose(); Destroy(subScene.gameObject); // 新シーン開始 subScene = nextSubScene; #if DEBUG_ENABLED debugService.ReplaceSubSceneMenu(subScene); #endif // 開始 subScene.ManualStart(gameState); nextSubScene = null; loadSubSceneName = null; } float dt = Time.deltaTime; // シーン更新 string nextSceneName = null; subScene.ManualUpdate(out nextSceneName, dt); // 次に行けと言われれば、 if ((loadSubSceneName == null) && (nextSceneName != null)) { loadSubSceneName = nextSceneName; loadSubSceneCoroutine = StartCoroutine(CoLoadSubScene()); } // グローバルオブジェクト類更新 world.ManualUpdate(dt); #if DEBUG_ENABLED debugService.ManualUpdate(dt); debugRenderer.UpdateMesh(); #endif }