-1 c# boolean unity-game-engine
我使用Unity 2018并使用C#,我想检查我的布尔值是否为真。这是我的代码:
public class ShopButtonClick : MonoBehaviour
{
bool shopOpened = false;
public GameObject upgradeOne;
public void ClickTheButton()
{
if (shopOpened)
{
shopOpened = false;
upgradeOne.SetActive(false);
}
else
shopOpened = true;
upgradeOne.SetActive(true);
}
}
Run Code Online (Sandbox Code Playgroud)
问题是它不起作用,我将脚本添加到了按钮上,但它不起作用,在我的其他项目中它可以正常工作……但是由于某种原因,现在不行了。
您缺少括号:
if (shopOpened)
{
shopOpened = false;
upgradeOne.SetActive(false);
}
// without brackets the else only applies to the first line of code after it
else
shopOpened = true;
// This is always executed
upgradeOne.SetActive(true);
Run Code Online (Sandbox Code Playgroud)
你想要的可能是
if (shopOpened)
{
shopOpened = false;
upgradeOne.SetActive(false);
}
else
{
shopOpened = true;
upgradeOne.SetActive(true);
}
Run Code Online (Sandbox Code Playgroud)
实际上,我宁愿将其写为
public void ClickTheButton()
{
// invert the bool flag
shopOpened = !shopOpened;
// directly re-use its value
upgradeOne.SetActive(shopOpened);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
118 次 |
| 最近记录: |