Unity の [Inspector]ウィンドウには変数の値を入力するためのフィールドやスライダーバーが表示できて便利ですが、ドロップダウンリストを表示するには?
調べると、 定数を使うとドロップダウンリストを表示できることが分かりました。具体的にはスクリプトで enum を使って列挙型を宣言するということなので、実際に試してみました。
ということで、変数をまとめて管理できるようです。
定数 = 値が変わらない変数、ということで、ゲーム実行中に値が変わらないシーンファイル名を使ってみることにします。トリガーコライダーコンポーネントと衝突したらシーンをロードするサンプルコードを作ってみました。
using System.Collections; using System.Collections.Generic; using UnityEngine; // シーン処理のクラスを使用する宣言 using UnityEngine.SceneManagement; public class SceneLoader : MonoBehaviour { // 列挙型の定義 public enum SCENE { Scene_A, Scene_B, Scene_C } // 列挙型の列挙値を格納する変数 public SCENE sceneName; // トリガーコライダーコンポーネントと衝突した場合の処理 private void OnTriggerEnter(Collider other) { // シーンのロード // 引数に列挙値を格納した変数 sceneName を文字列として指定 SceneManager.LoadScene(sceneName.ToString()); } }
列挙型の列挙値を格納する変数の型を使用する値に合わせて変換する必要がある点です。サンプルコードでは列挙値を格納した変数 sceneName を ToString() で文字列に変換しています。
オブジェクトにスクリプトをアタッチすると、[Inspector]ウィンドウでこのように表示されます。
【Unity入門】1番簡単なenumの覚え方!綺麗なプログラムは定数から! 侍エンジニア塾ブログ(Samurai Blog) – プログラミング入門者向けサイト