unity敌人随机巡逻,如果到达了随机目标点,则停留3秒等待,3秒后继续巡逻的脚本怎么写
时间: 2024-03-20 11:40:05 浏览: 75
您可以使用以下脚本来实现敌人随机巡逻、到达随机目标点停留3秒等待、3秒后继续巡逻的功能:
```csharp
using UnityEngine;
using System.Collections;
public class EnemyScript : MonoBehaviour
{
public float moveSpeed = 3f; // 敌人移动速度
public float waitTime = 3f; // 停留时间
private Vector3 targetPosition; // 随机目标点
private float timer = 0f; // 计时器
void Start()
{
// 初始化随机目标点
targetPosition = GetRandomPosition();
}
void Update()
{
// 如果敌人已经到达了随机目标点,则停留等待
if (transform.position == targetPosition)
{
timer += Time.deltaTime;
if (timer >= waitTime)
{
// 停留3秒后,重新生成随机目标点
targetPosition = GetRandomPosition();
timer = 0f;
}
}
else
{
// 如果敌人还没有到达随机目标点,则向目标点移动
transform.position = Vector3.MoveTowards(transform.position, targetPosition, moveSpeed * Time.deltaTime);
}
}
// 获取随机目标点
private Vector3 GetRandomPosition()
{
float x = Random.Range(-10f, 10f);
float z = Random.Range(-10f, 10f);
return new Vector3(x, transform.position.y, z);
}
}
```
在敌人上添加该脚本即可实现敌人随机巡逻、到达随机目标点停留3秒等待、3秒后继续巡逻的功能。
阅读全文