我想在角色变大时改变相机距离。但是我并不希望它立即发生,而是让相机移动一两秒钟到达该位置。
如何在一秒钟内将相机转换到特定位置?有没有办法轻松过渡,缓解过渡?
Vector3 position = new Vector3 (0, 0, -transform.localScale.x);
Camera.mainCamera.transform.localPosition = position;
答案 0 :(得分:1)
您可以声明公共Vector3用作目标,而不是每次都直接设置摄像机的位置。然后在每个帧调用的Update函数中,您可以使用Camera.mainCamera.transform.localPosition = Vector3.MoveTowards(Camera.mainCamera.transform.localPosition, targetPosition, speed * Time.deltaTime);
这会逐渐将相机移向目标位置,每帧最多speed * Time.deltaTime
个单位。如果您想确保转换需要一秒钟,那么您可以在更改目标位置的同时将speed
设置为距离。