unity相机视角不会随球体的转动而转动的代码
时间: 2024-02-03 15:14:23 浏览: 19
可以使用一个空物体作为相机的父物体,然后让空物体跟随球体一起旋转,从而实现相机视角不会随球体的转动而转动。
具体实现可以参考以下代码:
```csharp
public class CameraController : MonoBehaviour
{
public Transform target; // 球体的 Transform 组件
public float distance = 10.0f; // 相机与目标的距离
public float height = 5.0f; // 相机与目标的高度
private Transform cameraTransform; // 相机的 Transform 组件
void Start()
{
cameraTransform = transform; // 获取相机的 Transform 组件
}
void LateUpdate()
{
if (target != null)
{
// 计算相机的位置:目标位置 + 相对偏移
Vector3 targetPos = target.position + Vector3.up * height - target.forward * distance;
// 设置相机的位置
cameraTransform.position = targetPos;
// 设置相机的朝向:朝向目标位置
cameraTransform.LookAt(target.position);
}
}
}
```
在这个代码中,我们创建了一个 `CameraController` 脚本,将其挂载到空物体上作为相机的父物体。在 `LateUpdate()` 函数中,我们计算了相机的位置和朝向,并设置相机的 Transform 组件。这样,相机就可以跟随球体旋转,但不会改变视角。
注意:在使用该脚本时,需要将相机的 Transform 组件重置,并将其子物体设置为该空物体。