Unity オブジェクトの有効、無効を変更

Unityのシーンでゲームオブジェクトを有効にしたり、無効にしたりする方法を確認します。

確認のためのチュートリアル

機能の確認をするために、オブジェクトの有効無効をキーをきっかけとして繰り返される様子を確認します。

オブジェクトの配置

スクリプト

using UnityEngine;

public class SstActiveTest : MonoBehaviour
{
    public GameObject obj;

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            // アウトセット接続されたオブジェクトの有効(アクティブ:true) 無効(非アクティブ:false)を取得
            var state = obj.activeSelf;

            // オブジェクトの有効無効の状態を反転(trueならfalse、falseならtrue)
            var nextState = !state;

            // 反転した結果でアクティブ状態をセット
            obj.SetActive(nextState);
        }
    }
}

インテリセンスの「インラインの一時変数」を使って、コードをまとめると次のようになります。

using UnityEngine;

public class SstActiveTest : MonoBehaviour
{
    public GameObject obj;

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            // アウトセット接続されたオブジェクトの有効(アクティブ:true) 無効(非アクティブ:false)を取得

            // オブジェクトの有効無効の状態を反転(trueならfalse、falseならtrue)

            // 反転した結果でアクティブ状態をセット
            obj.SetActive(!obj.activeSelf);
        }
    }
}

実行結果

スペースキーを押すたびにCubeオブジェクトが有効・無効になることを確認します。

Unity

Posted by hidepon