unity敌人停留三秒的脚本怎么写
时间: 2024-03-19 08:43:29 浏览: 179
Unity 延时(delay)脚本
4星 · 用户满意度95%
以下是一个简单的Unity敌人停留三秒的脚本示例:
```c#
using UnityEngine;
using System.Collections;
public class EnemyMovement : MonoBehaviour {
public float speed = 10f; // 敌人移动速度
public float waitTime = 3f; // 敌人停留时间
private Transform target; // 敌人移动的目标点
private float timer; // 计时器
void Start () {
target = GameObject.FindGameObjectWithTag ("Player").GetComponent<Transform> (); // 获取玩家对象的Transform组件
}
void Update () {
if (timer <= 0) { // 如果计时器小于等于0
// 计算敌人朝向玩家的方向
Vector3 dir = target.position - transform.position;
// 根据方向计算敌人的旋转角度
float angle = Mathf.Atan2 (dir.y, dir.x) * Mathf.Rad2Deg - 90f;
transform.rotation = Quaternion.AngleAxis (angle, Vector3.forward);
// 移动敌人
transform.position += transform.up * speed * Time.deltaTime;
// 重置计时器
timer = waitTime;
} else {
// 计时器减少时间
timer -= Time.deltaTime;
}
}
}
```
该脚本首先获取玩家对象的Transform组件,然后在Update函数中计算敌人朝向玩家的方向,并根据方向计算敌人的旋转角度。然后移动敌人,并在敌人到达目标点后停留三秒。重复该过程直到敌人到达玩家位置为止。
阅读全文