分离路面导航
1、普通分离路面导航
1)设置分离路面静态
将需要进行分离路面导航的路面==》 Object ===> 的Off Mesh Link Gengeration勾选
2)分离路面跳跃设置
Drop Height :跳下的高度
Jump Distance :跳远的距离
Bake烘焙后,给角色添加最后的导航脚本代码(页底)
平行的分离路面导航效果:
往下跳:
2、高级分离路面导航(普通分离路面导航不能让角色往上跳跃)
1)设置两个空物体作为跳跃点坐标(最好是在导航网格上)
2、给角色添加OffMeshLink组件
3、将两个跳跃点Start,End 拖拽到OffMeshLink组件中Start,End
(两个跳跃点是双向可跳跃的)
4、添加导航脚本:
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.AI; public class NavigationTest : MonoBehaviour { private Animator animator; //行走动画 private NavMeshAgent agent; //导航组件 private Transform target; //目标位置 void Start () { animator = GetComponent<Animator>(); agent = GetComponent<NavMeshAgent>(); target = GameObject.Find("target").transform; } void Update () { if (Input.GetKeyDown(KeyCode.Space)) //按空格键 { agent.SetDestination(target.position); //开始导航 animator.SetBool("walk", true); //行走动画开启 } if (Vector3.Distance(target.position,transform.position)<=1.5f) //如果到达目标1.5m { agent.isStopped = true; //结束 animator.SetBool("walk", false); //结束行走 } } }