布尔值更改时如何执行语句?

时间:2018-09-22 21:42:33

标签: c# unity3d

我正在Unity中编写脚本。

public class WhileOne : MonoBehaviour {

    public GameObject char1, char2, charChanger;
    bool theTrue = false;

    void FixedUpdate () {
        if (ThingController.howManyTrues <= 0)
            theTrue = false;
        else
            theTrue = true;
    }
}

仅当我的布尔值从false更改为true时,我才希望从此脚本启用另一个脚本。我已经实现了布尔值的条件和值分配,我想知道如何在布尔值改变时以有效的方式进行检查。

谢谢。

1 个答案:

答案 0 :(得分:2)

将布尔变量从字段更改为属性,您将能够检测到set访问器中何时将其更改。

public class WhileOne : MonoBehaviour
{
    private bool _theTrue;
    public bool theTrue
    {
        get { return _theTrue; }
        set
        {
            //Check if the bloolen variable changes from false to true
            if (_theTrue == false && value == true)
            {
                // Do something
                Debug.Log("Boolean variable chaged from:" + _theTrue + " to: " + value);
            }
            //Update the boolean variable
            _theTrue = value;
        }
    }

    void Start()
    {
        theTrue = false;
    }
}