布尔值不用Unity中的代码更新

时间:2016-01-16 00:06:11

标签: c# unity3d boolean

我有一个随机更改分数的脚本。 A和B.我希望分数根据条件将按钮类型从false更改为true。出于某种原因,它不会改变。

除非得分均匀,否则最后一个脚本应该不断改变真或假。我也只想让它们持续到按下下一个按钮。

我已经打印出了这些信息,所以我知道得分正在被拉入,他们似乎没有计算。

public static bool yayButton = false;
public static bool booButton = false;

ScoreManager.scoreDisplayA;
ScoreManager.scoreDisplayB;

if(ScoreManager.scoreDisplayA > ScoreManager.scoreDisplayB){
        yayButton = true;
}
if(ScoreManager.scoreDisplayB > ScoreManager.scoreDisplayA){
        yayButton = true;
}

1 个答案:

答案 0 :(得分:1)

你在两种情况下都将yayButton设置为true,所以这是你的第一个错误。

使用此代码,一旦您的变量之一变为真,它总是为真,所以我认为您需要将其他变量变为false。

此代码必须采用Update()FixedUpdate()方法检测ScoreManager的新变化。

您的最终代码应该是这样的:

public static bool yayButton = false;
public static bool booButton = false;

ScoreManager.scoreDisplayA;
ScoreManager.scoreDisplayB;

void Start()
{
    // define the ScoreManager.scoreDisplayA and B here.
    // Something like this:
    // ScoreManager.scoreDisplayA = GameObject.Find("ScoreManager").GetComponent<scoreDisplayA>();
}

void Update()
{
    if(ScoreManager.scoreDisplayA > ScoreManager.scoreDisplayB){
        yayButton = true;
        booButton = false;
    }
    if(ScoreManager.scoreDisplayB > ScoreManager.scoreDisplayA){
        yayButton = false;
        booButton = true;
    }
}