Unity 2d 中的平滑相机移动

时间:2021-02-03 11:08:11

标签: c# unity3d

我正在联合开发一款 2d RPG 游戏,我想添加像 Brackeys 在此 video 中所做的那样平滑的相机运动。

我已经尝试过使用 FixedUpdate()Update()LateUpdate(),但是当我点击播放时,相机并没有落后于播放器。 奇怪的是,当我关闭相机脚本时,玩家移动流畅。

我什至尝试过 Vector3.SmoothDamp()Vector3.Lerp(),但没有什么它仍然有点滞后。

我该如何解决??

到目前为止我的代码:

public class CameraMovement : MonoBehaviour

{

public Transform target;
public float smoothing;

void FixedUpdate()
{
    if(transform.position != target.position)
    {
        Vector3 targetPosition = new Vector3
        (target.position.x, target.position.y, 
        transform.position.z); 

        transform.position = Vector3.Lerp
        (transform.position, 
        targetPosition, smoothing);
    }
}

}

目标是玩家变换。

1 个答案:

答案 0 :(得分:0)

尝试删除此 - if(transform.position != target.position) 声明。

并且还将平滑与 time.deltatime 相乘。 这里-

public Transform target;
public float smoothing;

    void FixedUpdate()
    {
    Vector3 targetPosition = new Vector3
    (target.position.x, target.position.y, 
    transform.position.z); 

    transform.position = Vector3.Lerp
    (transform.position, 
    targetPosition, smoothing*Time.deltatime);
    }
}