謎の歩行生物(仮)【PART39】~シーン遷移の処理について~

LINEで送る
Pocket

かなり前からシーン遷移の処理を変更していたのですが、そういえばそれを書いてなかったな~と思ったので、今のタイミングでそれもついでに書いておきます。

といっても正直「何を今さら」という内容でもあるのですが…。

というのも、この開発のPart11で「Application.LoadLevel 」の注意点について触れているのですが、Unity5.3のバージョンアップからこの処理は非推奨になっているんですね。で、変わりに「SceneManager.LoadScene」の使用が推奨されています。

ですので、そちらの使い方についてちょこっとだけ触れておこうと。

 

まずSceneManagerを使う際は必ずそのスクリプトの名前空間(namespace)に

using UnityEngine.SceneManagement;

と追加します。

001

↑こんな感じ。で、実際にシーンを呼び出す時には

SceneManager.LoadScene (“シーン名”);

と記述します。

シーン名から直接シーンを呼び出す際は単純にこれでOK。

あとはシーン名ではなく、シーン番号を入れて使うパターンもあります。シーン番号とはBuild Settingsを開いた時にシーンの右側にある番号です。
002

シーン番号を使う場合は

SceneManager.LoadScene (シーン番号);

と記述すればOK。

 

ただ、直接シーン名やシーン番号を入れるのもあまり使い勝手が良いわけじゃないな~と思います。そんな場合はシーン名やシーン番号を変数に入れて使うパターン。

例えばステージをリトライして今いるシーンと同じシーンを呼び出したい場合は、

003

とすれば、どのステージでも使えるモノになります。1行目で「Scene_now」という変数に現在のシーン名を入れて、2行目でその変数からシーンを呼び出します。

 

もう1つ例としてシーン番号を使って、現在のステージから次のステージにシーンを移動したい場合

004

とすると、現在のシーンから次のシーン番号を呼び出すことができます。まぁその場合ステージのシーンは番号順に並んでいないといけないわけですが。

まぁでもシーン名やシーン番号を直接入れて使うよりは幾分マシかと思います。

 

他にもシーンに別のシーンを追加したり、シーンを削除したり色々な使い方が出来るようになっているので、便利な使い方を模索してみるのも面白いと思います。

 

スポンサーリンク

スポンサーリンク

LINEで送る
Pocket