unity敌人随机巡逻,到达目标点后停留
时间: 2024-03-20 09:40:58 浏览: 57
你可以使用以下方法实现Unity敌人随机巡逻,到达目标点后停留:
1. 创建一个空物体作为目标点,并将其位置设置为敌人的初始位置。
2. 在敌人的脚本中,定义一个变量来存储目标点的位置,以便在需要时进行访问。
3. 在Start()函数中,生成一个随机的二维向量,用于确定敌人下一个目标点的位置。
4. 将随机生成的向量添加到敌人初始位置,以获得下一个目标点的位置。
5. 在Update()函数中,使用Vector2.Distance()函数检查敌人是否到达目标点。如果是,则停留一段时间,然后继续生成下一个随机向量,并重复步骤4和5。
以下是示例代码:
```
public class Enemy : MonoBehaviour
{
public float speed = 5.0f;
public float waitTime = 2.0f;
private Vector2 targetPosition;
// Start is called before the first frame update
void Start()
{
targetPosition = transform.position;
}
// Update is called once per frame
void Update()
{
if (Vector2.Distance(transform.position, targetPosition) < 0.1f)
{
StartCoroutine(WaitAndMove());
}
else
{
transform.position = Vector2.MoveTowards(transform.position, targetPosition, speed * Time.deltaTime);
}
}
IEnumerator WaitAndMove()
{
yield return new WaitForSeconds(waitTime);
Vector2 randomVector = Random.insideUnitCircle.normalized * 5.0f;
targetPosition = (Vector2)transform.position + randomVector;
}
}
```
在这个示例中,敌人将在到达目标点后停留2秒钟,然后生成下一个随机向量,并继续移动。你可以根据需要调整速度和等待时间。
阅读全文