Unity Smooth跟随相机保持活力

时间:2014-05-01 12:00:03

标签: c# math camera unity3d game-physics

我正在以恒定的跑步方式进行比赛,玩家不断以不断增加的速度从左向右移动,当玩家跳跃时,他会在有限的时间内获得额外的速度。

我的相机跟随代码如下(C#):

float dampTime = 0.2f;
Vector3 positionVelocity = Vector3.zero;

void LateUpdate() {

    transform.position = Vector3.SmoothDamp(transform.position, targetPos, ref positionVelocity, dampTime);
}

现在这种方法在低速时工作正常,当玩家跳跃时,相机会顺畅地跟随。 然而,随着玩家的速度增加,相机越来越多地落后,玩家越来越多地移动到屏幕的右侧。

我想保持玩家和屏幕右侧之间的距离不变,当他在地面上时,他的跑步速度并不高,但是当他跳跃并获得短时间提升时,相机应该平稳地处理它而不是蹒跚前行。

这怎么可能?

谢谢!

1 个答案:

答案 0 :(得分:0)

enter code here
public float smoothSpeed = 0.125f;
public Vector3 offset;
private Vector3 desiredPosition;

void FixedUpdate(){
    Vector3 smoothedPosition = Vector3.Lerp(transform.position, 
                                  desiredPosition, smoothSpeed);
    transform.position = smoothedPosition;    

}

只需调整偏移量vector3,我希望它会很好