public void OnSceneUnload(Scene scene, SceneLoadUnloadRequest request) { if (request.m_Result == SceneLoadUnloadRequest.UpdateResult.PreStart && request.m_Reason == SceneLoadUnloadRequest.Reason.Scenario) { this.OnSceneUnload(scene); } }
private void UpdateRequests() { int count = this.m_SceneLoadUnloadRequests.Count; int i = 0; while (i < this.m_SceneLoadUnloadRequests.Count) { SceneLoadUnloadRequest sceneLoadUnloadRequest = this.m_SceneLoadUnloadRequests[i]; SceneLoadUnloadRequest.UpdateResult r = sceneLoadUnloadRequest.Update(); if (r == SceneLoadUnloadRequest.UpdateResult.Started) { this.OnSceneStatusChanged(sceneLoadUnloadRequest); i++; } else if (r == SceneLoadUnloadRequest.UpdateResult.Done) { this.OnSceneStatusChanged(sceneLoadUnloadRequest); this.m_SceneLoadUnloadRequests.RemoveAt(i); } else if (r == SceneLoadUnloadRequest.UpdateResult.Failed) { this.OnSceneStatusChanged(sceneLoadUnloadRequest); this.m_SceneLoadUnloadRequests.RemoveAt(i); } else { i++; } } }
public SceneLoadUnloadRequest.UpdateResult Update() { DebugUtils.Assert(this.m_Reason != SceneLoadUnloadRequest.Reason.Any, true); DebugUtils.Assert(this.m_OpType != SceneLoadUnloadRequest.OpType.Any, true); if (!this.CanLoadOrUnloadScene()) { this.m_Result = SceneLoadUnloadRequest.UpdateResult.None; } else if (this.m_AsyncOp == null) { SceneLoadUnloadRequest.OpType opType = this.m_OpType; if (opType != SceneLoadUnloadRequest.OpType.Load) { if (opType == SceneLoadUnloadRequest.OpType.Unload) { this.m_AsyncOp = this.UnloadSceneAsync(this.m_SceneName); } } else { this.m_AsyncOp = SceneLoadUnloadRequest.LoadSceneAsync(this.m_SceneName); } this.m_Result = ((this.m_AsyncOp != null) ? SceneLoadUnloadRequest.UpdateResult.Started : SceneLoadUnloadRequest.UpdateResult.Failed); } else { this.m_Result = (this.m_AsyncOp.isDone ? SceneLoadUnloadRequest.UpdateResult.Done : SceneLoadUnloadRequest.UpdateResult.InProgress); } return(this.m_Result); }
private void OnSceneStatusChanged(SceneLoadUnloadRequest request) { if (request.m_OpType == SceneLoadUnloadRequest.OpType.Load) { SceneLoadUnloadRequestHolder.OnSceneLoad(SceneManager.GetSceneByName(request.m_SceneName), request); return; } if (request.m_OpType == SceneLoadUnloadRequest.OpType.Unload) { SceneLoadUnloadRequestHolder.OnSceneUnload(SceneManager.GetSceneByName(request.m_SceneName), request); } }
public void UnloadScene(string scene_name, SceneLoadUnloadRequest.Reason reason) { SceneLoadUnloadRequest sceneLoadUnloadRequest = new SceneLoadUnloadRequest { m_SceneName = scene_name, m_OpType = SceneLoadUnloadRequest.OpType.Unload, m_Reason = reason }; sceneLoadUnloadRequest.m_Result = SceneLoadUnloadRequest.UpdateResult.PreStart; SceneLoadUnloadRequestHolder.OnSceneUnload(SceneManager.GetSceneByName(sceneLoadUnloadRequest.m_SceneName), sceneLoadUnloadRequest); this.Add(sceneLoadUnloadRequest); }
public void OnSceneLoad(Scene scene, SceneLoadUnloadRequest request) { if (request.m_Result == SceneLoadUnloadRequest.UpdateResult.Done && this.m_LoadState != ScenarioManager.LoadState.UnloadingScenes && this.m_LoadState != ScenarioManager.LoadState.LoadingScenes) { MainLevel.Instance.InitObjects(); Scenario scenario = this.m_Scenario; if (scenario == null) { return; } scenario.OnSceneLoaded(); } }
public void Add(SceneLoadUnloadRequest request) { this.m_SceneLoadUnloadRequests.Add(request); }