我要提前感谢您帮助我解决这个问题。
我有一个由三部分组成的播放器:身体、头部和手臂
这三个都是单独的精灵。
我已将它们全部分组在一个我命名为“玩家”的空游戏对象下
然后,我在“玩家”游戏对象上添加了一个动画,将 Y 位置从0 更改为 0.022,然后从0.022 更改回 0。这创建了一个很好的小悬停动画,其中角色上下弹跳。
动画效果非常好!
但是,我还有一个附加到“Player”对象的脚本,这个脚本称为“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 时,角色拒绝移动。但是他确实翻转正确。
我个人觉得我的动画是在和剧本打架,而且动画的优先级比剧本高……?
(不知道这个社区是否普遍接受视频。如果没有,那么我道歉)
如果你们能帮助我了解正在发生的事情以及如何纠正它,我将非常感激。
谢谢!:)