こちらを参考にしました。
SceneAを実行している間に、SceneBとSceneCをバックグラウンドでロードさせておきたいです。
次のシーンの読み込みを早くするためにLoadLevelAsyncを使いました。
しかし、下のコードでは、**void Start(){}**の中の一番上に書かれた、**StartCoroutine(SceneB());しか実行されず、その下のStartCoroutine(SceneC());**は実行されていません。
c#
1//SceneB 2 public void SceneBButtonDown() 3 { 4 AsyncB.allowSceneActivation = true; 5 } 6 private AsyncOperation AsyncB; 7 IEnumerator SceneB() 8 { 9 AsyncB = SceneManager.LoadSceneAsync("SceneB"); 10 AsyncB.allowSceneActivation = false; 11 12 while (!AsyncB.isDone) 13 { 14 yield return new WaitForSeconds(0); 15 } 16 yield return AsyncB; 17 } 18//SceneC 19 public void SceneCButtonDown() 20 { 21 AsyncC.allowSceneActivation = true; 22 } 23 private AsyncOperation AsyncC; 24 IEnumerator SceneC() 25 { 26 AsyncC = SceneManager.LoadSceneAsync("SceneC"); 27 AsyncC.allowSceneActivation = false; 28 29 while (!AsyncC.isDone) 30 { 31 yield return new WaitForSeconds(0); 32 } 33 yield return AsyncC; 34 } 35 36 void Start() 37 { 38 StartCoroutine(SceneB()); 39 StartCoroutine(SceneC()); 40 }
やはりLoadLevelAsyncは同時に1シーンしか読み込みができないのでしょうか
あなたの回答
tips
プレビュー