Unity进入一定范围敌人自动追击主角的c#源代码
时间: 2024-09-25 20:04:40 浏览: 14
在Unity中创建一个简单的敌对角色自动追击玩家的脚本,你可以使用C#编写如下的基本示例。假设我们有一个名为`Enemy`的敌方对象、`Player`的玩家对象以及`InRangeDistance`作为追击范围内设定的距离。
```csharp
using UnityEngine;
public class EnemyFollowPlayer : MonoBehaviour
{
// 定义玩家和敌人的公共变量
public GameObject player;
private float rangeDistance = 5.0f; // 追击范围
// Update函数会在每一帧运行
void Update()
{
// 获取当前位置的向量
Vector3 enemyPosition = transform.position;
Vector3 playerPosition = player.transform.position;
// 检查是否在追击范围内
if (Vector3.Distance(enemyPosition, playerPosition) <= rangeDistance)
{
// 直接向玩家移动
transform.LookAt(playerPosition);
transform.Translate(Vector3.forward * Time.deltaTime * 5); // 移动速度和时间间隔
}
else
{
// 如果超出范围,转向玩家方向
transform.LookAt(playerPosition);
}
}
}
```
在这个脚本中,我们首先获取敌人的位置和玩家的位置,然后计算两者之间的距离。如果距离小于等于设定的范围,敌人会直接朝向玩家并逐步接近;如果超出范围,则保持朝向玩家的方向。