我正在开发移动3D游戏,我已经共享了角色动作脚本中的图片,如果您查看它,则可以看到每个输入都有一个“ anim.SetInteger”,但“ condition”确实每个方向都不要更改为“ 1”。如果你们知道我需要做什么,请告诉我。
答案 0 :(得分:1)
您的else
语句仅适用于您的最终if
语句。可能发生的情况是您的前六个if
语句之一为true,因此您的Condition
动画参数被设置为1。但是,因为最后一个if
如果语句为false,则else
块也将被执行,因此Condition
在同一游戏循环迭代中将被设置回零。
将所有中间的if
语句更改为else if
。应该是这样的:
if (/* condition 1 */)
{
anim.SetInteger("Condition", 1);
// transform = ...
}
else if (/* condition 2 */)
{
anim.SetInteger("Condition", 1);
// transform = ...
}
else if (/* condition 3 */)
{
anim.SetInteger("Condition", 1);
// transform = ...
}
else
{
anim.SetInteger("Condition", 0);
horizontal = 0;
vertical = 0;
}