Unity 导航寻路-Off-MeshLink

2020-10-30 13:53发布

在3D游戏中,,,场景中的静态几何的导航网格不是全部相连在一起的,从而使代理不能从世界场景的这一部分移动到另外的部分,此时需要运用Off-MeshLink来解决此类问题

Off-MeshLink : 分离网格链接组件

该组件用于手动指定路径线路,可以实现跨越鸿沟或者往高跳跃的效果,


下面就举一个往高跳的例子,,

搭建如图所示的游戏场景(我们将实现从主角(胶囊体),下面的立方体(黄色)跳跃到上面的立方体上(白色)


然后开始使用Off-MeshLink 将除了主角(胶囊体)外的物体都选中,然后在Navigation面板下勾选如图:




然后为开始点(黄色立方体)添加组件OffMeshLink:并为Start , End 属性赋值,如下图:



最后为主角(胶囊体):添加组件属性基本不用修改,再加上一个代码就可以实现跳跃功能了:



代码如下:

using UnityEngine;

using UnityEngine.AI;  //注意命名空间的引用

 

public class offmesh : MonoBehaviour {

 

    NavMeshAgent agent;

    GameObject go;

 

// Use this for initialization

void Start () {

        agent = GetComponent<NavMeshAgent>();

        go = GameObject.Find("endpoint");

}

// Update is called once per frame

void Update () {

        agent.SetDestination(go.transform.position);

}

}



作者:Czhenya

链接:https://czhenya.blog.csdn.net/article/details/77618665

来源:CSDN
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。