逐渐将相机转换到另一个位置?

时间:2014-11-14 19:09:41

标签: unity3d camera

我想在角色变大时改变相机距离。但是我并不希望它立即发生,而是让相机移动一两秒钟到达该位置。

如何在一秒钟内将相机转换到特定位置?有没有办法轻松过渡,缓解过渡?

    Vector3 position = new Vector3 (0, 0, -transform.localScale.x);
    Camera.mainCamera.transform.localPosition = position;

1 个答案:

答案 0 :(得分:1)

您可以声明公共Vector3用作目标,而不是每次都直接设置摄像机的位置。然后在每个帧调用的Update函数中,您可以使用Camera.mainCamera.transform.localPosition = Vector3.MoveTowards(Camera.mainCamera.transform.localPosition, targetPosition, speed * Time.deltaTime);

这会逐渐将相机移向目标位置,每帧最多speed * Time.deltaTime个单位。如果您想确保转换需要一秒钟,那么您可以在更改目标位置的同时将speed设置为距离。