unity敌人追踪玩家代码
时间: 2023-10-08 15:14:52 浏览: 225
以下是一个简单的示例代码,实现了一个敌人追踪玩家的功能:
```
using UnityEngine;
public class EnemyController : MonoBehaviour
{
public Transform player;
public float moveSpeed = 3f;
public float stoppingDistance = 2f;
private Rigidbody2D rb;
void Start()
{
rb = GetComponent<Rigidbody2D>();
}
void Update()
{
if (player != null)
{
// 计算敌人朝向玩家的方向
Vector2 direction = player.position - transform.position;
// 如果敌人和玩家之间的距离大于停止距离,则向玩家移动
if (direction.magnitude > stoppingDistance)
{
rb.velocity = direction.normalized * moveSpeed;
}
else
{
rb.velocity = Vector2.zero;
}
}
}
}
```
在上面的代码中,我们首先定义了一个`player`变量,用于存储玩家的`Transform`组件。然后,我们定义了一个`moveSpeed`变量,用于控制敌人的移动速度。接着,我们定义了一个`stoppingDistance`变量,用于控制敌人停止移动的距离。
在`Start`方法中,我们获取了敌人的`Rigidbody2D`组件。
在`Update`方法中,我们首先判断玩家是否存在。如果存在,我们计算了敌人朝向玩家的方向,并根据敌人和玩家之间的距离来决定是否向玩家移动。如果敌人和玩家之间的距离小于等于停止距离,则敌人停止移动。
最后,我们将计算出的速度应用到敌人的刚体组件上,使其朝着玩家移动。
阅读全文