Unity解説 static変数によるフラグ機能の作成
フラグを使用したライトのオフ
今回は、static変数を使って簡単なシステムフラグ機能を作ってみましょう。
 
  
 
どんなのを作るのー?

 
 
そうですね~。では、マウスをクリックしたらライトがオフになるようにしてみましょうか。
 
  
 
まず、ライトのオンオフを判定するフラグスクリプトを以下のように作ります。
 
  
 
【StaticFlag.cs】
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class StaticFlag : MonoBehaviour
{
    public static bool lightFlag;
    void Start()
    {
        lightFlag = true;      
    }
}
次にクリックをすると上で作成した「lightFlag」がfalseになるスクリプトを作ります。
 
  
 
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LightFlagManager : MonoBehaviour
{
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Mouse0)) 
        {
            StaticFlag.lightFlag =false;
        }
    }
}
これら二つのスクリプトは、空のオブジェクトにアタッチしておきます。


そして、「lightFlag」がfalseになったらライトを非アクティブにするスクリプトを作ります。
 
  
 
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LightOFF : MonoBehaviour
{
    void Update()
    {
        if (StaticFlag.lightFlag == false) 
        {
            this.gameObject.SetActive (false);
        }
    }
}
それではゲームを実行してみましょう。
 
  
 

クリックを押したら、電気が消えた。電気のスイッチみたいだね。

 
 
このように外部から変数を操作できるため、例えば複数のスクリプトでフラグを使いたいときに有用ですね。
 
  
 
お名前
