我正在以恒定的跑步方式进行比赛,玩家不断以不断增加的速度从左向右移动,当玩家跳跃时,他会在有限的时间内获得额外的速度。
我的相机跟随代码如下(C#):
float dampTime = 0.2f;
Vector3 positionVelocity = Vector3.zero;
void LateUpdate() {
transform.position = Vector3.SmoothDamp(transform.position, targetPos, ref positionVelocity, dampTime);
}
现在这种方法在低速时工作正常,当玩家跳跃时,相机会顺畅地跟随。 然而,随着玩家的速度增加,相机越来越多地落后,玩家越来越多地移动到屏幕的右侧。
我想保持玩家和屏幕右侧之间的距离不变,当他在地面上时,他的跑步速度并不高,但是当他跳跃并获得短时间提升时,相机应该平稳地处理它而不是蹒跚前行。
这怎么可能?
谢谢!
答案 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,我希望它会很好