我想提前感谢你帮我解决这个问题。
我有一个由三部分组成的玩家: 身体 头部 和手臂
这三个都是个人精灵。
我将它们全部归入一个名为"播放器"
的空GameObject下然后我在" Player"上添加了一个动画。 GameObject将Y位置从 0更改为0.022 ,然后从 0.022更改为0 。 这会创建一个漂亮的小悬停动画,其中角色会上下跳动。
动画效果非常好!
但是,我还有一个脚本附加到"播放器"对象,此脚本称为" PlayerController"。
在PlayerController中,如果他们按住A(向左移动)或D(向右移动),我会更改玩家的x位置。
protected bool facingRight = true;
float xPos = 0;
void Update()
{
if (Input.GetKey(KeyCode.D))
{
xPos += 0.01f;
if (!facingRight)
{
Flip();
}
}
else if (Input.GetKey(KeyCode.A))
{
xPos -= 0.01f;
if (facingRight)
{
Flip();
}
}
gameObject.transform.position = new Vector2(xPos, transform.position.y);
}
protected void Flip()
{
facingRight = !facingRight;
Vector3 theScale = transform.localScale;
theScale.x *= -1;
transform.localScale = theScale;
}
当我持有A或D时,角色拒绝移动。但他确实正确翻转了。
我个人认为我的动画正在与剧本对抗,而且动画的优先级高于剧本......?
Here's a video of me explaining my issue
(不确定这个社区是否普遍接受视频。如果没有,那么我道歉)
如果你们能帮助我了解正在发生的事情以及如何纠正它,我将非常感激。
谢谢! :)