Nanashi-soft○プログラマ専用○Unityでゲーム開発○
◇Unityでゲーム開発 -JavaScriptでシーン切り替え方法-
Unityでのシーンとはどういうポジションにあるのか? から 書くと
Project(全てのコンテンツがここに入っています)
|-Scene1
|-Hierarchy
|-Scene2
|-Hierarchy
こういう感じになります
まずは,テスト用に2つのシーンを作ってみます
プロジェクトを生成した時には,Hierarchyに Main Cameraのみが置かれています
Main CameraのBackgroundカラーをブルーにする
メニューの File→Save Scene as...を選択して,Scene1.unityで保存
そうすると,Projectに Scene1が生成されます
次に,Main CameraのBackgroundカラーをレッドにする
メニューの File→Save Scene as...を選択して,今度は Scene2.unityで保存
そうすると,Projectに Scene2が生成されます
この2つのシーンを実行ファイルに含めます
メニューの File→Build Settings...を選択
Project上の Scene1と
Scene2を,上の空欄にドラッグ&ドロップ(なぜか,今表示しているシーンを追加するボタンしか無いので,この方法で)
シーンをクリックしながら動かすと入れ替える事ができますので,Scene1を 0にして下さい
この 0にセットしたシーンが最初に呼び出されます
この2つのシーンを,クリックする度に切り替えるようにしたいと思います
Projectの下にある Createボタン→JavaScriptをクリック
生成された NewBehaviourScriptをダブルクリックしてエディタを起動
function Update () {
if(Input.GetMouseButtonDown(0)){
//マウスがクリックされた
if (Application.loadedLevelName == "Scene1") {
//現在シーン1を表示中なので,シーン2に切り替える
Application.LoadLevel("Scene2");
} else {
//現在シーン2を表示中なので,シーン1に切り替える
Application.LoadLevel("Scene1");
}
}
}
シーンを切り替えるのは,
Application.LoadLevel(シーン名);
もしくは,
Application.LoadLevel(シーンインデックス番号);
です
インデックスは,ビルド設定時のダイアログに表示されていた番号です
まぁ,0で初期画面,ということのみに使用するのでしょう
今表示しているシーン名は,
Application.loadedLevelName
で取得可能です
最後に,記述したこのスクリプトを,Scene1,Scene2両方の Main Cameraの
Inspectorにドラッグ&ドロップすれば完了です
ちなみに,Open Sceneで開かなくても,Project上のシーンをダブルクリックすれば開きます(私はずっとOpen
Sceneしていたorz)
実行して,ウィンドウをクリックすると,シーンが切り替わり,青←→赤と色が変わるはずです
各シーンに Cubeオブジェクトとかを適当に置くと,それも一緒にオン・オフされます
○TOP○プログラマ専用○Unityでゲーム開発○



