为什么animSetInteger无法正常工作?

时间:2019-03-17 09:59:31

标签: c# unity3d

我正在开发移动3D游戏,我已经共享了角色动作脚本中的图片,如果您查看它,则可以看到每个输入都有一个“ anim.SetInteger”,但“ condition”确实每个方向都不要更改为“ 1”。如果你们知道我需要做什么,请告诉我。

MovementScript MovementScript2 ("Else" part)

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;
}