Unity 第三人称相机代码
时间: 2023-07-02 16:18:05 浏览: 101
在Unity中实现第三人称相机主要是通过脚本来控制相机的位置和旋转。以下是一个简单的示例代码:
```csharp
using UnityEngine;
public class ThirdPersonCamera : MonoBehaviour
{
public Transform target; // 跟随的目标物体
public float distance = 5.0f; // 相机距离目标的距离
public float height = 2.0f; // 相机距离目标的高度
public float smoothSpeed = 0.125f; // 相机跟随的平滑度
private Vector3 offset; // 相机和目标的偏移量
void Start()
{
// 计算相机和目标的偏移量
offset = transform.position - target.position;
}
void LateUpdate()
{
// 计算相机的目标位置
Vector3 targetPosition = target.position + offset - target.forward * distance + Vector3.up * height;
// 用平滑的方式将相机移动到目标位置
Vector3 smoothedPosition = Vector3.Lerp(transform.position, targetPosition, smoothSpeed);
transform.position = smoothedPosition;
// 让相机朝向目标物体
transform.LookAt(target);
}
}
```
在这个脚本中,我们通过 `target` 变量来指定相机要跟随的目标物体。然后通过 `distance` 和 `height` 变量来计算相机和目标的偏移量。在每一帧中,我们根据相机的偏移量和目标物体的位置计算出相机的目标位置,然后通过 `Lerp` 函数将相机平滑地移动到目标位置。最后,我们让相机朝向目标物体。通过调整这些参数,我们可以控制相机的位置和旋转,从而实现不同的第三人称相机效果。
阅读全文