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

2019年1月19日

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

基本の方法

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

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

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

ゲームオブジェクトの表示を消す(レンダリングの無効化)アウトレット接続を利用

// フィールドにすることで、クラス内の他のメソッドでも有効化・無効化の設定ができるようにもなります。
    public Rendere rd;

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

サンプル

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

設定画面

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

実行画面(クリックでGifアニメーション)

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

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

public class LightControlller : MonoBehaviour
{
    public Light lt;

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

2019年1月19日Unity

Posted by hidepon