1、建立导航地图,将场景设置为navigation static进行烘培,人物不用烘培 2、人物身上挂上compenent-navigation-navi mesh agent组件 3、编写导航脚本,可以实现鼠标点击哪里人物就走到哪里。 部分代码如下: Using UnityEngine.AI;//引入AI算法模块 //Public Transform goal; Private NavMeshAgent agent; Void Start(){ Agent=GetComponent(); //Agent.destination=goal.position;//注释的这两行是实现一运行人物就走到指定位置 } Void Update(){ If(Input.GetMouseButtonDown(0){ RaycastHit hit; If(Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition),out hit,100)){ Agent.destination=hit.point;} } 4、如果需要在两个物体上实现跳跃,需要在其中一个物体上添加component-navigation-off mesh link组件,把端点物体拖进去。 5、有时候烘培好了之后再添加物体(wall),是可以移动的,不能烘培,会发现人物可以直接穿过,这时候需要给移动的物体增加component-navigation-navi mesh obstacles组件,那么虽然它可以被移动,人物也会绕过它,而不是直接穿过去。这个组件有个carve选项,是可以动态生成物体的烘培。
|