Unity3d-玩家车道变化顺畅

时间:2019-03-14 06:52:29

标签: unity3d unityscript

新手正在研究简单的游戏原型,该原型需要{strong> smoothing ({strong> smoothly )畅通无阻地更改player(附加character control)。已经看到很多答案,但无法达到预期的效果。

我尝试使用以下方法但徒劳!

  1. Vector3.Lerp
  2. transform.position
  3. tranform.translate

有人可以建议一种更好的方法吗?

1 个答案:

答案 0 :(得分:1)

private IEnumerator MoveLane(float x, float y)
{
    Vector2 initialPosition = transform.localPosition;
    Vector2 destination = new Vector2(x, y);
    float delta = 0;
    while(transform.localPosition != destination)
    {
        delta += Time.deltaTime * speedModifier;
        characterController.Move(Vector2.Lerp(initialPosition, destination, delta));
        yield return new WaitForEndOfFrame();
    }

}

要交换车道时启动此协程,其中x和y是所需的目标坐标。您可以使用speedModifier(1为“正常”)来调整速度。