はじめに
こんにちは!今回は、Unityでトグルを使ってオブジェクトを表示・非表示に切り替える方法を見ていきましょう。ここでは、CubeとSphereのどちらか一方を必ず選択して表示する方法を紹介します。簡単なステップで進めていくので、一緒にやってみましょう!
Unityを触ったことがないという方はコチラの記事から見てみてください!
ステップ1:オブジェクトの配置
まずは必要なオブジェクトを配置していきます。
Cubeを配置する
- ヒエラルキー(Hierarchy)ウィンドウを右クリックします。
- 「3D Object」→「Cube」を選択します。
ステップ2:UIの設定
次に、UIを設定してトグルを作成します。
Toggleを作成する
- Canvasを右クリックします。
- 「UI」→「Toggle」を選択します。これでトグルが作成されます。
- インスペクター(Inspector)ウィンドウで「Toggle」の名前を「CubeToggle」に変更します。

ステップ4:スクリプトの作成
オブジェクトの表示・非表示を制御するスクリプトを作成します。
スクリプトを作成する
- ヒエラルキー(Hierarchy)ウィンドウを右クリックして「Create」→「C# Script」を選択します。
- スクリプトの名前を「ToggleController」にします。
スクリプトを編集する
- 作成したスクリプトをダブルクリックして開き、以下のコードを入力します。
(1) 必要なライブラリのインポート
using UnityEngine;
using UnityEngine.UI; // UIコンポーネントを使用するために必要
using UnityEngine
:Unityで基本的な機能(ゲームオブジェクト、スクリプトなど)を使えるようにする命令。using UnityEngine.UI
:UI(ボタンやスライダー、トグルなど)を使うための命令。これがないとToggle
が使えません。
(2) クラスの宣言と変数
public class ToggleController : MonoBehaviour
{
public GameObject objectToToggle; // 表示・非表示を切り替えるオブジェクト
public Toggle toggleControl; // Toggleの参照
}
public class ToggleController : MonoBehaviour
:スクリプトの本体。MonoBehaviour
を継承しているのでUnityにアタッチして使えます。GameObject objectToToggle
:- この変数には、表示・非表示を切り替えたいオブジェクト(CubeやTextなど)をドラッグ&ドロップします。
Toggle toggleControl
:Toggle
はスイッチのようなUI部品です。この変数には、シーン内のToggleをドラッグ&ドロップして関連付けます。
(3) ゲーム開始時の処理
void Start()
{
// Toggleの値が変更されたときに呼び出されるメソッドを設定
toggleControl.onValueChanged.AddListener(OnToggleChanged);
}
void Start()
:ゲームが始まったときに最初に実行される処理。toggleControl.onValueChanged.AddListener(OnToggleChanged)
:Toggle
がONかOFFに切り替わったときに呼び出す関数(OnToggleChanged
)を登録しています。
(4) Toggleの変更に応じた処理
void OnToggleChanged(bool isOn)
{
// Toggleの状態に応じてオブジェクトの表示・非表示を切り替え
objectToToggle.SetActive(isOn);
}
OnToggleChanged(bool isOn)
:Toggleが変更されたときに実行される関数。bool isOn
はToggleがONのときtrue
、OFFのときfalse
になります。
objectToToggle.SetActive(isOn)
:SetActive
はオブジェクトを表示(true
)または非表示(false
)にします。- ここでは、Toggleの状態(ON/OFF)に応じてオブジェクトを切り替えています。
3. スクリプト全体の流れ
- ゲームが始まると
Start()
が呼ばれて、Toggle
にイベント(OnToggleChanged
)を登録します。 - プレイヤーが
Toggle
を操作すると、OnToggleChanged
が呼び出されます。 OnToggleChanged
では、Toggle
の状態に応じてオブジェクトを表示するか隠すかを切り替えます。
using UnityEngine;
using UnityEngine.UI; // UIコンポーネントを使用するために必要
public class ToggleController: MonoBehaviour
{
public GameObject objectToToggle; // 表示・非表示を切り替えるオブジェクト
public Toggle toggleControl; // Toggleの参照
void Start()
{
// Toggleの値が変更されたときに呼び出されるメソッドを設定
toggleControl.onValueChanged.AddListener(OnToggleChanged);
}
void OnToggleChanged(bool isOn)
{
// Toggleの状態に応じてオブジェクトの表示・非表示を切り替え
objectToToggle.SetActive(isOn);
}
}
スクリプトのアタッチ
- ヒエラルキー(Hierarchy)ウィンドウで「Canvas」を選択します。
- 作成したスクリプト「ToggleController」をインスペクター(Inspector)ウィンドウにドラッグ&ドロップします。
スクリプトの設定をする
- 「objectToToggle」に「Cube」を設定します。
- 「toggleControl」に「Toggle」を設定します。
テストプレイ
これで設定は完了です!プレイボタンを押して、トグルを操作してみてください。Cubeがうまく表示・非表示されるのを確認できるはずです。
お疲れ様でした!この方法で簡単にトグルを使ったオブジェクトの切り替えができるようになりましたね。もっと色々なオブジェクトやUIを使って、楽しいプロジェクトを作ってみてください。
おすすめのアセット
「Better UI」は、Unityのユーザーインターフェースを簡単かつ効率的に改善するためのツールです。このアセットを使えば、直感的に使えるUI要素を簡単に作成できます。特に、解像度に応じてUIのサイズや位置を自動で調整する機能が便利です。これにより、どんなデバイスでも見やすいUIを提供できます。