unity3d 如何让玩家不断移动,又能顺利移动到固定位置?

djp7away  于 2023-03-09  发布在  其他
关注(0)|答案(1)|浏览(121)

我想让玩家不断地向z方向移动,但也想将此功能与将玩家移动到3个固定x位置(-1.5,0或1.5)中的一个的选项结合起来,像Vector3.Leap函数一样平滑过渡。我尝试了几个选项,但都不起作用。
有人知道我该怎么做吗?

yjghlzjz

yjghlzjz1#

分割这两个对象,并在Z轴上不断移动,但在X轴上进行插值:

[SerializeField] private float zVelocity = 1f;
[SerializeField] private float smoothTime = 0.3f;

private float xVelocity = 0f;
private float targetX = 0f;

public void SetTargetX(float newTargetX)
{
    targetX = newTargetX;
}

public void SetZVelocity(float newZVelocity)
{
    zVelocity = newZVelocity;
}

private void Update ()
{
    var position = transform.position;
    position.z += zVelocity * Time.deltaTime;
    position.x = Mathf.SmoothDamp(position.x, targetX, ref xVelocity, smoothTime);
    transform.position = position;
}

相关问题