コンポーネントの有効化、無効化

2022年9月4日

ゲームオブジェクトにアタッチされているコンポーネントの有効、無効化をスクリプトから変更します。

基本のコード

コンポーネントのenabledプロパティの設定を変更します

コンポーネントの参照.enabled = true/false;

サンプル

ゲームオブジェクトの表示を消す例(レンダリングの無効化)

コード

void Start()
{
    GetComponent<Renderer>().enabled = false;
}

インスペクターでコンポーネントを登録する場合

コード

public Rendere rd;

void Start()
{
    rd.enabled = false;
}

サンプル

設定

Lightクラスのインスタンスを参照しているので、アウトレット接続のD&DでLightクラスの参照が代入されます

スクリプト(ポイントライトオブジェクトにアタッチ)

  • Lキーを押下するたびにライトのオンオフが切り替わります。
  • インスペクターのLightコンポーネントのイネーブル(□)がオンオフしていることも確認しましょう。
using UnityEngine;
public class LightControlller : MonoBehaviour
{
    public Light lt;

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.L))
        {
            // ステートメントが呼ばれるたびにenabledが反転する。
            lt.enabled = !lt.enabled;
        }
    }
}

実行結果

Lキーのクリックを繰り返すことで、ポイントライトのオンオフを繰り返すことができます。

クリックでGifアニメーションを再生します

Unity

Posted by hidepon