我在Unity中编写了以下代码作为自顶向下的2D播放器控制器。它可以工作,但是当精灵方向基于按键快速变化时,动画需要几帧才能更新。这给人的印象是精灵是滑动的。侧向而不是实际走向那个方向。这只是由于Animator的工作方式还是有办法解决这个问题?
此外,我应该关注在更新中设置GameObject的位置,因为移动速度将取决于帧速率(如果我的理解是正确的)?是不是有一种不那么笨拙的方式呢?
public class playerController : MonoBehaviour
{
private Animator animator;
private float speed = 0.04f;
// Use this for initialization
void Start()
{
animator = this.GetComponent<Animator>();
animator.SetInteger("Direction", 0);
}
void Update()
{
var vertical = Input.GetAxis("Vertical");
var horizontal = Input.GetAxis("Horizontal");
if (vertical > 0)
{
animator.SetInteger("Direction", 2);
}
else if (vertical < 0)
{
animator.SetInteger("Direction", 0);
}
else if (horizontal < 0)
{
animator.SetInteger("Direction", 1);
}
else if (horizontal > 0)
{
animator.SetInteger("Direction", 3);
}
gameObject.transform.position = new Vector2(gameObject.transform.position.x + (speed * horizontal), gameObject.transform.position.y + (speed*vertical));
}
}