码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2014-10-18 19:40:53      阅读:562      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   使用   strong   sp   2014   on   问题   

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

Unity提供了NavMesh 导航组件

?

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

主要的麻烦是:

1.不能脱离Editor生成NavMesh。

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

?

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

NavMeshAgent 作为移动单位来寻路

NavMeshObstacle 作为动态障碍

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

?

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

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

?

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

?

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

bubuko.com,布布扣bubuko.com,布布扣

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

?

这个勾选上带来的意义是

bubuko.com,布布扣

bubuko.com,布布扣

运行中可以实时计算navmesh

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

?

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

?

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

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

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

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

标签:style   blog   http   使用   strong   sp   2014   on   问题   

原文地址:http://www.cnblogs.com/crazylights/p/4033474.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!