我让敌人沿着设定的路径(路径点)移动,但是我希望敌人在您距离玩家一定距离内时跟随玩家,但是当超出该距离时,敌人会回到其路径点并继续前进路径,直到玩家再次在一定距离内。所以它一直在这样做。下面是我得到的让敌人沿路点移动的代码。我正在使用 Unity 2d 和 C#[SerializeField]Transform[] waypoints; //EnemyWayPoint;[SerializeField]float moveSpeed = 3f;int waypointIndex = 0;private void Start(){ transform.position = waypoints[waypointIndex].transform.position;}private void Update(){ Move();}private void Move(){ transform.position = Vector3.MoveTowards(transform.position, waypoints[waypointIndex].transform.position, moveSpeed * Time.deltaTime); if (transform.position == waypoints[waypointIndex].transform.position) { waypointIndex += 1; } if (waypointIndex == waypoints.Length) waypointIndex = 0; }}
2 回答
哈士奇WWW
TA贡献1799条经验 获得超6个赞
使用Vector3.Distance(otherPos,transformPos) 检查敌人和玩家之间的距离,如果小于distVal,则根据您的选择检查距离,然后敌人应该跟随或执行动作
var distVal=5.0f;
var dis=Vector3.Distance(enemyTransform.position,playerTransform.position);
if(dis<=disVal)
{
//what enemy should do.
}
接下来是您自己的选择,用于在此处读取距离文档时设置的向量的归一化
慕的地6264312
TA贡献1817条经验 获得超6个赞
Arslan 的回答很好 - 只需对代码稍作更改,您就知道它也可以通过这种方式完成...
var distVal=5.0f;
if (Vector3.Distance(enemyTransform.position, playerTransform.position) < disVal)
{
Debug.Log("Enemy following you");
}
它大致相同,但很高兴知道它存在的其他方式。
- 2 回答
- 0 关注
- 180 浏览
添加回答
举报
0/150
提交
取消