unity 一个飞船在ABCD四点之间来回巡逻 代码
时间: 2024-03-21 13:42:16 浏览: 60
基于unity的21点网络游戏.zip
以下是一个简单的示例代码,实现了一个飞船在ABCD四点之间来回巡逻的功能。
```csharp
using UnityEngine;
public class ShipPatrol : MonoBehaviour
{
public Transform[] patrolPoints; // 巡逻点数组
public float moveSpeed = 5f; // 飞船移动速度
private int currentPointIndex = 0; // 当前巡逻点索引
private Vector3 currentTarget; // 当前巡逻目标点
void Start()
{
currentTarget = patrolPoints[currentPointIndex].position;
}
void Update()
{
// 计算飞船当前位置到目标点的方向
Vector3 direction = currentTarget - transform.position;
direction.Normalize();
// 让飞船面向目标点
transform.LookAt(currentTarget);
// 让飞船向目标点移动
transform.position += direction * moveSpeed * Time.deltaTime;
// 如果飞船到达了当前目标点,选择下一个目标点
if (Vector3.Distance(transform.position, currentTarget) < 0.1f)
{
currentPointIndex++;
if (currentPointIndex >= patrolPoints.Length)
{
currentPointIndex = 0;
}
currentTarget = patrolPoints[currentPointIndex].position;
}
}
}
```
在这个示例代码中,我们使用了一个数组来存储巡逻点的位置信息。在 `Start` 方法中,我们初始化了当前目标点为数组中的第一个点。然后在 `Update` 方法中,我们计算出当前位置到目标点的方向,并让飞船面向目标点。接着,我们让飞船向目标点移动,并检测是否到达了目标点。如果到达了目标点,我们就选择下一个目标点作为当前目标点,并重复上述过程。这样,飞船就能在ABCD四点之间来回巡逻了。
阅读全文