unity 镜头围绕物体转动
时间: 2023-07-01 16:10:15 浏览: 80
在 Unity 中,可以使用以下代码实现围绕物体旋转相机:
```csharp
public class CameraController : MonoBehaviour
{
public Transform target; // 相机要围绕的目标物体
public float speed = 5.0f; // 围绕速度
public float distance = 10.0f; // 相机与目标的距离
private Vector3 offset; // 相机初始位置与目标的偏移量
void Start()
{
// 计算相机初始位置与目标的偏移量
offset = transform.position - target.position;
}
void LateUpdate()
{
// 计算相机的目标位置
Vector3 targetPosition = target.position + offset;
// 计算相机的旋转角度
float angle = Input.GetAxis("Horizontal") * speed * Time.deltaTime;
Quaternion rotation = Quaternion.AngleAxis(angle, Vector3.up);
// 计算相机的新位置
Vector3 newPosition = rotation * offset + target.position;
// 设置相机的位置和旋转
transform.position = newPosition;
transform.rotation = Quaternion.LookRotation(target.position - transform.position);
}
}
```
在这个示例中,我们使用 `LateUpdate` 方法来更新相机的位置和旋转。在 `Start` 方法中,我们计算相机的初始位置与目标的偏移量。在 `LateUpdate` 方法中,我们首先计算相机的目标位置,然后根据用户输入计算相机的旋转角度,然后计算相机的新位置,并将相机的位置和旋转设置为新位置和目标方向。
阅读全文