首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用户创建的世界中的统一局部避免

用户创建的世界中的统一局部避免
EN

Stack Overflow用户
提问于 2015-07-22 15:27:35
回答 2查看 563关注 0票数 1

我正在使用Unity3D的网络多人在线游戏,在那里我有一个非常大的复杂的三维地形场景,如森林,与树木,悬崖,山,山,边界等。

玩家也可以建造类似“我的世界”的建筑,把它们放在场景中的任何地方,甚至可以随时移动它们。

除了人类控制的玩家之外,还有自动AI玩家和像动物一样沿着一条路径在场景中漫游的物体。

问题是如何使这些自动AI玩家和动物能够在静态和动态玩家创建的结构周围导航,因为他们所遵循的路径很容易被玩家创建的结构所阻塞,甚至被其他玩家和其他人工智能对象、悬崖等阻塞。因此,他们必须找到他们周围的地方,或者如果他们从一个高高的悬崖上摔下来,他们就必须回到正轨上。

所以我制作了一个navMesh并使用了NavAgents,但这只是处理静态的、非移动的对象,但是我如何使AI玩家在彼此之间导航,以及玩家创建的动态结构,这些结构可以用几百个数字来表示?

我想向所有东西添加一个NavMeshObstacle,但是这会导致它被附加到数百个对象上,因为用户创建的结构是使用小块或小块来创建一个更大的对象。

以下是我的问题:

  1. 在数百个小物体上附加一个NavMeshObstacle会减慢游戏的速度吗?
  2. 除了使用NavMeshObstable之外,还有其他方法可以在不减慢网络游戏速度的情况下导航动态对象吗?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2015-07-23 09:28:26

基于NavMeshObstacle的文档,人们可以合理地假设,如果禁用了从导航网格中“雕刻”出的障碍物(一个障碍“雕刻”),那么障碍只会在妨碍代理的情况下影响代理的性能。它们不会影响寻路。接近的时候探员就会绕过他们。请注意,如果存在如此多的动态障碍,而代理需要一条非常不同的路径,这将不适用于您。你也可以设置他们重新雕刻出导航网的一块,只有当他们移动了一定数量。你应该测试一下你的表现,但这听起来很适合你。

http://docs.unity3d.com/ScriptReference/NavMeshObstacle.html

票数 1
EN

Stack Overflow用户

发布于 2015-07-22 17:31:13

如果你不想花太多时间制造你自己的“传感器和导航”系统来扩展统一导航,那么我认为你的方式是通过NavMeshObstacles。如果您使用诸如“我的世界”这样的模块来构建障碍,以避免在每个块上添加NavMeshObstacle,那么在如何限制/接近构建系统方面,您就有了大量的选择。

还有一些优秀的人工智能系统可以免费使用,比如下雨,它实现了一些可扩展和一致的方式来实现你想做的事情,如果有什么适合你的需求的话,看看统一市场。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31567552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档