C# A*是否能够处理多个楼层(例如:多层建筑)?
我有一个3D体素游戏,我正试图找到最合适的寻路算法来使用。我一直在想A*算法是否能够处理多个楼层,例如多层建筑,并通过楼梯或梯子找到路线 这是可能的,还是我应该用别的东西C# A*是否能够处理多个楼层(例如:多层建筑)?,c#,unity3d,3d,path-finding,voxel,C#,Unity3d,3d,Path Finding,Voxel,我有一个3D体素游戏,我正试图找到最合适的寻路算法来使用。我一直在想A*算法是否能够处理多个楼层,例如多层建筑,并通过楼梯或梯子找到路线 这是可能的,还是我应该用别的东西 提前感谢。只要使用正确,任何路径查找算法(统一或非统一)都可以使用。您必须首先决定要使用哪种路径查找,这取决于您想要实现的目标 由于节点过多,对于多层建筑,统一或图形算法可能会有大量开销。(假设您正在同时构建整个建筑) 非一致性算法比图算法慢得多,但没有太大的开销 这实际上取决于你希望你的角色做什么,以及你将如何优化它 A*很
提前感谢。只要使用正确,任何路径查找算法(统一或非统一)都可以使用。您必须首先决定要使用哪种路径查找,这取决于您想要实现的目标 由于节点过多,对于多层建筑,统一或图形算法可能会有大量开销。(假设您正在同时构建整个建筑) 非一致性算法比图算法慢得多,但没有太大的开销 这实际上取决于你希望你的角色做什么,以及你将如何优化它 A*很快,但您可能希望查看类似于*的跳点系统的一些迭代。。如果有一个好的楼梯行为可以有效地自动使用,NavMesh会找到它
否则,您将需要使用一种称为分层搜索的方法 这是一个图形算法,所以,是的。我建议阅读图表的工作原理。我可以强化@BlueRaja DannyPflughoeft所说的内容,有趣的是,我只是在学习:),unity有一个高质量的资产tho:很棒,强烈推荐。真正的问题是,对于多层建筑,你不能仅仅让探路者放松,它可能会告诉你走出窗户,缩放墙壁(和/或飞行)。你必须正确设置网格,并假设你不能垂直移动,除非地板垂直(如楼梯)。如果代理需要走楼梯,您需要加权A*以搜索楼梯,然后goal.navMesh对于静态世界非常有用,但由于这是一个体素游戏,玩家可以随时更改任何内容。据我所知,我们需要烘烤。如果玩家决定e。G:建造一堵墙,然后每次放置一个块时,相应的世界块都会更新,因此Navmesh也必须更新,从而导致游戏不共振。我不知道我是否完全正确。是的,先试试。事实上,你的代理人不一定马上就需要这条路。此外,您不需要重新计算整个navmesh以进行小的更改,请仔细阅读文档并考虑如何使用navmesh的“单元”。