コード例 #1
0
 public void OnSceneUnload(Scene scene, SceneLoadUnloadRequest request)
 {
     if (request.m_Result == SceneLoadUnloadRequest.UpdateResult.PreStart && request.m_Reason == SceneLoadUnloadRequest.Reason.Scenario)
     {
         this.OnSceneUnload(scene);
     }
 }
コード例 #2
0
    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++;
            }
        }
    }
コード例 #3
0
 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);
 }
コード例 #4
0
 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);
     }
 }
コード例 #5
0
    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);
    }
コード例 #6
0
 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();
     }
 }
コード例 #7
0
 public void Add(SceneLoadUnloadRequest request)
 {
     this.m_SceneLoadUnloadRequests.Add(request);
 }