Unity 2D播放器控制器的改进

时间:2018-03-09 03:29:06

标签: c# unity3d

我在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));
}
}

0 个答案:

没有答案