阅读 165

Unity 导航寻路-Off-MeshLink

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

基础步骤:

  1. 创建场景。

  2. 把inv环境中的Cube物体设置为静态,并勾选OffMeshLink Generation选项。

  3. 为start point添加Off Mesh Link组件。并把start point和end point拖放指定到Start和End属性中。

  4. 为主角胶囊体添加Nav Mesh Agent组件。

  5. Bake烘焙场景。注意调节Height、Drop Height、Jump Distance属性。


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

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

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

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

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

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

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

!

代码如下:

using UnityEngine; using UnityEngine.AI;  //注意命名空间的引用 public class offmesh : MonoBehaviour {     NavMeshAgent agent;     GameObject go;     void Start () {         agent = GetComponent<NavMeshAgent>();         go = GameObject.Find("endpoint");     }     void Update () {         agent.SetDestination(go.transform.position);     } }


作者:陈言必行
链接:https://juejin.cn/post/7026114217048702984


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐