首先和玩家设置一模一样,给敌人添加一个刚体,设置一个碰撞器,并设置一个触发器。然后在对场景里面的组件添加导航网格代理并且进行bake烘焙,那样的话敌人就可以在进行烘焙的位置进行移动。
创建脚本,并且挂载脚本到敌人的组件上,用代码进行实现效果,并且要挂载目标对象
代码实现:
using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.AI; public class EnemyMove : MonoBehaviour { // Start is called before the first frame update //找到目标组件 玩家 public Transform player; //网格代理 NavMeshAgent nav; //找到组件 EnemyHP EnemyHP; PlayerHP PlayerHP; void Start() { player = GameObject.FindGameObjectWithTag("Player").transform; nav=GetComponent<NavMeshAgent>(); EnemyHP=GetComponent<EnemyHP>(); PlayerHP=player.GetComponent<PlayerHP>(); } // Update is called once per frame void Update() { //玩家和敌人都还活着 if (EnemyHP.currentHP > 0 && PlayerHP.currentHP > 0) { //找到玩家的位置 nav.SetDestination(player.transform.position); } else { //停止移动 nav.enabled = false; } } }
上面代码顺序不一样,可能会导致运行出错,如需要得进行完整性使用,才能保证项目正常运行。如出错请认真检查并且通过调整看看是否能达到效果。如有更好的方法,请在下方留言!谢谢你的观看!!!
----------------------------------------------------------END-----------------------------------------------------------------