我一直在尝试在我的游戏中实现变形机制。您可以在三种当前模式之间切换。但是我使用的 if 检查或我使用它的方式似乎存在问题。我问了一些人,但他们告诉我使用状态机,我发现这对于我的简单代码来说非常复杂。但我也想听听你的意见。
这是代码:
if (Input.GetKeyDown(KeyCode.Space))
{
if (normalMode == true || normalMode == false && speedMode == true && (heavyMode == false))
{
normalMode = false;
heavyMode = true;
sr.sprite = heavyForm;
speed = 7f;
rb.mass = 2f;
}
else if (normalMode == true && normalMode == false && (heavyMode == true && (speedForm == false)))
{
normalMode = false;
speedMode = true;
sr.sprite = speedForm;
speed = 15f;
rb.mass = 0.5f;
}
else
{
normalMode = true;
sr.sprite = normalForm;
speed = 10f;
rb.mass = 1f;
}
}
只有 if 和 else 语句有效,而 else if 则无效。如果有人帮助我,我会很高兴。
由于这部分条件,
else if
永远不会被满足
normalMode == true && normalMode == false
这永远不会是真的,整个表达式将计算为
false
。
你必须以某种方式纠正它。