我的脚本中有两个if语句和两个bool(bool1和bool2)。我的脚本是这样的-
using UnityEngine
using system.collection
public class example : MonoBehaviour
{
public bool bool1;
public bool bool2;
void Update()
{
if (bool1 == true)
{
// play animation1
}
if (bool1 == true && bool2 == true)
{
// play animation2
}
}
}
当两个布尔值都为真时,我只希望播放animation2,而不要同时播放animation1和animation2。
我该怎么办?
答案 0 :(得分:5)
您需要将语句重写为:
if (bool1 == true && bool2 == true)
{
// play animation2
}
else if (bool1 == true)
{
// play animation1
}
因为您的第一个陈述更强,也就是说,当第二个陈述为真时,它就是对的,这就是为什么您需要对条件进行逆向检查的原因。
大多数开发人员会忽略== true
,因为这是不必要的。如果要检查某物是否为false
,则可以执行!bool1
。这是您的代码,其中没有不必要的== true
:
if (bool1 && bool2)
{
// play animation2
}
else if (bool1)
{
// play animation1
}
答案 1 :(得分:2)
您可以进行一些嵌套,其附加好处是您的bool1仅需要评估一次:
80
答案 2 :(得分:1)
您必须更改条件顺序。
void Update()
{
if (bool1 && bool2)
{
// play animation2
}
else if (bool1)
{
// play animation1
}
}