unity3d摄像机跟随路径移动
时间: 2023-07-09 12:34:07 浏览: 142
您可以使用以下代码在Unity中使摄像机沿着路径移动:
```
public class CameraPath : MonoBehaviour
{
public Transform[] waypoints; // 存储路径上的所有点
public float speed = 5.0f; // 镜头移动速度
public float waitTime = 1.0f; // 等待时间
private int currentWaypoint = 0; // 当前点的索引
private float currentSpeed = 0.0f; // 当前速度
private float currentWaitTime = 0.0f; // 当前等待时间
void Update()
{
if (currentWaitTime > 0) // 如果当前在等待时间内,则减少等待时间
{
currentWaitTime -= Time.deltaTime;
return;
}
if (currentWaypoint >= waypoints.Length) // 如果已经到达路径末尾,则重新开始路径
{
currentWaypoint = 0;
}
if (currentWaypoint == waypoints.Length - 1) // 如果已经到达路径末尾,则等待一段时间再重新开始路径
{
currentWaitTime = waitTime;
}
Vector3 target = waypoints[currentWaypoint].position; // 获取当前目标位置
transform.position = Vector3.MoveTowards(transform.position, target, currentSpeed * Time.deltaTime); // 移动到目标位置
if (transform.position == target) // 如果已经到达目标位置,则移动到下一个目标位置
{
currentWaypoint++;
currentSpeed = 0.0f;
}
else // 如果还未到达目标位置,则继续移动
{
currentSpeed = speed;
}
}
}
```
在此示例中,我们存储路径上的所有点,并使用Transform.position和Vector3.MoveTowards方法在每个点之间移动摄像机。我们还使用等待时间来在到达路径末尾时停顿一段时间。您可以根据需要调整速度和等待时间,并添加更多点以创建更复杂的路径。
阅读全文