• Unity多单位战斗寻路问题的一种解决办法


    Unity多单位战斗寻路问题的一种解决办法

    Unity提供了NavMesh 导航组件

     

    NavMesh是在实践中通用性最好的一种导航方式,但是Unity的实现并没有完全提供一个开放自由的API。

    主要的麻烦是:

    1.不能脱离Editor生成NavMesh。

    2.NavMesh信息保存在场景中,必须随场景加载。

     

    他的使用方式主要是在Editor阶段设定障碍关系。

    NavMeshAgent 作为移动单位来寻路

    NavMeshObstacle 作为动态障碍

    NavMeshAgent和NavMeshObstacle作为障碍默认都是采用了一种像物理系统的方式去绕开,默认表现并不好

     

    过去在我们的实践中还有一个新的问题

    3. NavMeshObstacle障碍是用碰撞圆柱体硬挤,并没有影响路径。有障碍的地方其他单位是硬挤过去,效果很不好。

     

    一直以来这些问题让这个NavMesh系统有一些鸡肋。

     

    unity某个版本给NavMeshObstacle 增加了一个选项

    意义非常重大,可惜的是我并没有看到资料介绍他,偶然才发现他的意义。

     

    这个勾选上带来的意义是

    运行中可以实时计算navmesh

    这样的修改才可以影响寻路系统,实现停止的单位影响其他单位的路径。

     

    问题2 和 问题3都可以一定程度上的解决

     

    经实验,这个功能的范围始终是个矩形。

    与模型无关,尺寸取得是模型的边界。

    无论什么形状的模型,都取他边界的矩形。可以旋转。

  • 相关阅读:
    Mixly按键控制LED灯(物联网)
    Mixly数码管时钟实验(物联网)
    Java基础语法Day_06(面相对象和封装)
    Java基础语法Day_05(数组的概念)
    Java基础语法Day_02-03(数据类型、运算符、方法、循环结构)
    Java基础语法Day_04
    Java基础语法Day_01
    两个辅助指针变量挖字符串
    玩转多级指针
    二级指针内存模型
  • 原文地址:https://www.cnblogs.com/crazylights/p/4033474.html
Copyright © 2020-2023  润新知