首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将Unity navmesh多个代理移动到单点并停止相互推送

将Unity navmesh多个代理移动到单点并停止相互推送
EN

Stack Overflow用户
提问于 2021-05-05 02:14:03
回答 1查看 263关注 0票数 0

我正在制作一个游戏,它需要多个角色在狭窄的道路上导航。我一直遇到this问题,角色在交叉点互相推挤,卡住了。没有足够的空间来机动和躲避对方。

我尝试了一种变通方法,我发现了here,但这导致了一个问题,因为导航网格的障碍可以是雕刻也可以是非雕刻。如果我使用非雕刻,一个角色停止移动,以便另一个可以通过,但通常另一个角色继续试图推开停止的熊,他们都被卡住了。这可以通过制作障碍物雕刻来解决,因为另一个角色将重新计算它周围的路径。但是,这意味着当停止的角色再次开始移动时,它会稍微抖动,因为它所站的位置没有任何导航网格数据,因此角色会捕捉到有导航网格数据的位置。

即使角色确实设法到达了他们的目标位置,另一个问题是一个角色到达了目标点,其他角色继续向前推进到第一个角色,试图到达目标位置,而不是像here所展示的那样停下来。

如果需要,我非常乐意提供更多的信息,任何帮助都将不胜感激。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-05-05 02:41:56

另一种解决方案是将AI的物理层设置为不与自身冲突。在这样做的时候,AI不会互相推挤,而是相互滑行。它将缓解你所面临的这两个问题。

转到项目编辑-> Settings->Physics2D->LayerCollisionMatrix

您可以在此处禁用AI所在的层之间的碰撞。我建议在AI中添加一个新的层,这样它就不会只与自己发生碰撞,而是与所有其他对撞机正常工作。要确保它们不会发生冲突,请在此矩阵的行/列上找到该层,并取消选中该层与自身相交的复选框。

如果这个替代解决方案对您不起作用,我可以推荐其他解决方案。

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

https://stackoverflow.com/questions/67390053

复制
相关文章

相似问题

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