unity2D敌人在x轴和y轴移动追踪玩家不可斜角追踪
时间: 2023-06-20 22:05:18 浏览: 93
基于Python+mediapipe在unity中实现姿态追踪
你可以在敌人的脚本中实现这个功能。以下是一个简单的示例:
1. 首先,你需要获取敌人和玩家的Transform组件:
```
public Transform playerTransform;
public Transform enemyTransform;
```
2. 然后,你需要在 Update() 函数中检查玩家的位置并移动敌人:
```
void Update() {
// 获取敌人和玩家的位置
Vector3 playerPos = playerTransform.position;
Vector3 enemyPos = enemyTransform.position;
// 检查玩家在哪个方向上比较远
float xDiff = Mathf.Abs(enemyPos.x - playerPos.x);
float yDiff = Mathf.Abs(enemyPos.y - playerPos.y);
// 如果玩家在x轴上更远,则在x轴上移动敌人
if (xDiff > yDiff) {
enemyPos.x += (playerPos.x > enemyPos.x) ? speed * Time.deltaTime : -speed * Time.deltaTime;
enemyPos.y = enemyPos.y; // 保持y轴位置不变
}
// 如果玩家在y轴上更远,则在y轴上移动敌人
else {
enemyPos.x = enemyPos.x; // 保持x轴位置不变
enemyPos.y += (playerPos.y > enemyPos.y) ? speed * Time.deltaTime : -speed * Time.deltaTime;
}
// 更新敌人的位置
enemyTransform.position = enemyPos;
}
```
这个示例代码中,使用了一个 speed 变量来控制敌人的移动速度。你可以根据需要更改这个变量的值,以及添加任何其他的逻辑,比如检测敌人是否已经到达了玩家的位置等等。
阅读全文