怎么让ai动起来啊
选择Window->Navigation,会出现Navigation的相关设置;
选择场景中构成游戏地图的物体,点击Navigation下的Object,将Naviga Static选项勾选;
点击Navigation下的Bake,设置其中参数,最后点击右下角的Bake对所选物体进行烘焙,烘焙成功后,会在Scene视窗下看到蓝色网格;
在需要进行寻路的游戏物体上添加NavMeshAgent组件以及一个新的脚本;
脚本:加入UnityEngine.AI的命名空间,声明一个类型为NavMeshAgent类型的变量,在Start方法或者Awake方法中通过GetComponent方法获取到NavMeshAgent组件,在Update方法中使用变量的SetDestination方法设定目标位置(在脚本中添加一个共有变量GameObject,将这个物体的位置作为寻路的目标点,在上述的SetDestination方法中填入这个物体的position);
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.AI; public class Player : MonoBehaviour { private NavMeshAgent agent; public GameObject target; // Use this for initialization void Start () { // 获取NavMeshAgent组件 agent = GetComponent<NavMeshAgent> (); } // Update is called once per frame void Update () { // 设定目标位置 agent.SetDestination (target.transform.position); } }
不要忘记将目标物体拖到脚本的共有变量target中;
可以做一些其他的设置,不过这样就已经可以运行了,运行后的效果就是一个物体向着一个目标点进行移动。