【ハルシオンブログ】複数シーンのまとめて生成とまとめて破棄について。こういう使い方することあるのかな・・・
こんにちは。坂内っす。
シーンって複数つかってます?
例えばこの3つのシーンがあるとします。
シーン名はそれぞれ左から「20190218_1」「20190218_2」「20190218_3」となっています
こいつをまとめて使う場合、起動シーンを用意して3つのシーンを読み込むことができます。
実行するとこうなります。
それぞれのシーンが読み込まれました。
では全部のシーンを消す場合はどうでしょうか。
これまた簡単で、こんなコードでできます。
実際に以下のコードを流してみましょう。
全部のシーンを読み込んで、3秒後にすべてのシーンを破棄します。
こんな感じで、複数シーンを生成破棄することができます。
何かに役に立てば幸い情報でした。
あでゅ~ノシ
シーンって複数つかってます?
例えばこの3つのシーンがあるとします。
シーン名はそれぞれ左から「20190218_1」「20190218_2」「20190218_3」となっています
こいつをまとめて使う場合、起動シーンを用意して3つのシーンを読み込むことができます。
using System.Collections;
using UnityEngine;
using UnityEngine.SceneManagement;
public class Script20190218 : MonoBehaviour
{
string[] SCENE_LIST = { "20190218_1", "20190218_2", "20190218_3" };
private void Awake() {
StartCoroutine(LoadScenes());
}
private IEnumerator LoadScenes() {
for(int i = 0; i < SCENE_LIST.Length; i++) {
yield return SceneManager.LoadSceneAsync(SCENE_LIST[i], LoadSceneMode.Additive);
}
}
}
実行するとこうなります。
それぞれのシーンが読み込まれました。
では全部のシーンを消す場合はどうでしょうか。
これまた簡単で、こんなコードでできます。
private IEnumerator ExitScenes() {
for(int i = 0; i < SCENE_LIST.Length; i++) {
if(SceneManager.GetSceneByName(SCENE_LIST[i]).IsValid()) {
yield return SceneManager.UnloadSceneAsync(SCENE_LIST[i]);
}
}
}
実際に以下のコードを流してみましょう。
using System.Collections;
using UnityEngine;
using UnityEngine.SceneManagement;
public class Script20190218 : MonoBehaviour
{
string[] SCENE_LIST = { "20190218_1", "20190218_2", "20190218_3" };
private void Awake() {
StartCoroutine(LoadScenes());
}
private IEnumerator LoadScenes() {
for(int i = 0; i < SCENE_LIST.Length; i++) {
yield return SceneManager.LoadSceneAsync(SCENE_LIST[i], LoadSceneMode.Additive);
}
yield return new WaitForSeconds(3);
yield return StartCoroutine(ExitScenes());
}
private IEnumerator ExitScenes() {
for(int i = 0; i < SCENE_LIST.Length; i++) {
if(SceneManager.GetSceneByName(SCENE_LIST[i]).IsValid()) {
yield return SceneManager.UnloadSceneAsync(SCENE_LIST[i]);
}
}
}
}
全部のシーンを読み込んで、3秒後にすべてのシーンを破棄します。
こんな感じで、複数シーンを生成破棄することができます。
何かに役に立てば幸い情報でした。
あでゅ~ノシ
Category: 開発日記(Unity)
| h o m e |