Unity 5.3 で Application.LoadLevel が Obsolete になりました
シーンを遷移するときに呼び出す Application.LoadLevel が、Unity 5.3 から非推奨になったんですね。MonoDevelop で Application.LoadLevel を呼び出している箇所に警告が出ていました。
`UnityEngine.Application.LoadLevel(int)' is obsolete: `Use SceneManager.LoadScene'
`UnityEngine.Application.LoadLevel(string)' is obsolete: `Use SceneManager.LoadScene'
SceneManager に置き換えるだけなので簡単でしたが、SceneManager すら知らなかったので、ちょっとびっくりしました。対応をまとめておきます。
シーン名でのシーン遷移
シーン遷移で、よく使うのはこれですね。遷移したいシーン名をパラメータで指定する方法です。
Unity 5.2
Application.LoadLevel ("BattleScene");
Unity 5.3
SceneManager.LoadScene ("BattleScene");
※ SceneManager を使用するには、名前空間 (UnityEngine.SceneManagement)が定義されている必要があります!!
using UnityEngine.SceneManagement;
シーン番号でのシーン遷移
シーン名での遷移があれば、シーン番号(インデックス)での遷移はあまり使わない気もしますけどね。Application.LoadLevel でも SceneManager.LoadScene でも int型を引数にもつ オーバーロードメソッドが用意されています。
Unity 5.2
Application.LoadLevel (0);
Unity 5.3
SceneManager.LoadScene (0);
現在のシーン名を取得
現在表示されているシーン名の取得です。
Unity 5.2
string sceneName = Application.loadedLevelName;
Unity 5.3
string sceneName = SceneManager.GetActiveScene ().name;
参考資料
たしかに、ググっても情報があんまり見当たらなかったです。とても参考になりました。
SceneManager の公式APIドキュメント。
Application.LoadLevel のAPIドキュメントも念のため。