如果语句体不执行

时间:2015-11-04 19:30:54

标签: c# unity3d

我有这个if语句的代码。对我来说,看起来它编程正确,但if语句的代码永远不会执行。我知道我的变量设置为true,但它不起作用。

以下是带有if:

的Update函数
void Update()
{   
    if (t0 && t2)
    {
        Debug.Log("Bingo");
        Application.LoadLevel("Bingo");
    }
}

以下是将变量设置为true的代码:

if(gameObject.name.Equals("Button 0"))
{
    t0 = true;
    Debug.Log(gameObject.name);
}

if (gameObject.name.Equals("Button 2"))
{
    t2 = true;
    Debug.Log(gameObject.name);
}

我知道这些变量设置为true,虽然这很奇怪,因为如果我从代码中的其他位置设置变量true,它就会起作用。

2 个答案:

答案 0 :(得分:7)

两个if语句只提供一个true,因为'gameObject.name'值只会等于'Button 0'或'Button 2',除非它们至少运行两次同时满足'Button 0'和'Button 2'条件你将只有一个真值

答案 1 :(得分:2)

if语句在单次执行时都不会为true,因为按钮名称不能保存两个不同的值。

使用||而不是&&

void Update() { if (t0 || t2) { Debug.Log("Bingo"); Application.LoadLevel("Bingo"); } }