C# 如何管理一个;“没有路径”;带有*
我有一个二维网格上没有权重的A*脚本的AI。使用这些AI管理“无路径”情况的理想或典型方式是什么,例如AI被不可通行的瓷砖阻挡在其最终目标之外?我可以看到对开放列表进行封顶,但这似乎是任意的——毕竟,到目标的路径可能相当长——但实现这一点的典型方式是什么?通常,a*应该限制它应该执行的迭代次数。没有可以使用的“默认限制”,因为您可以使用多种策略来测试这一点 TLDR:用于简化较小问题的解决方案以获得最佳结果,并将A*限制在有限空间或迭代量内 从最坏到最好列出C# 如何管理一个;“没有路径”;带有*,c#,unity3d,graph,a-star,C#,Unity3d,Graph,A Star,我有一个二维网格上没有权重的A*脚本的AI。使用这些AI管理“无路径”情况的理想或典型方式是什么,例如AI被不可通行的瓷砖阻挡在其最终目标之外?我可以看到对开放列表进行封顶,但这似乎是任意的——毕竟,到目标的路径可能相当长——但实现这一点的典型方式是什么?通常,a*应该限制它应该执行的迭代次数。没有可以使用的“默认限制”,因为您可以使用多种策略来测试这一点 TLDR:用于简化较小问题的解决方案以获得最佳结果,并将A*限制在有限空间或迭代量内 从最坏到最好列出 设置硬限制-这是最简单的解决方案,最
通常,A*应该对它应该执行的迭代次数有一个限制。没有可以使用的“默认限制”,因为您可以使用多种策略来测试这一点 TLDR:用于简化较小问题的解决方案以获得最佳结果,并将A*限制在有限空间或迭代量内 从最坏到最好列出
如果两个图块之间从来没有任何可行走的路径,那么它们就没有理由成为同一图形的一部分。如果贴图是静态的,则可以使用Djikstra将贴图预处理为确保所有分片之间具有有效路径的部分 如果贴图是完全动态的,则可能必须设置节点数的硬上限 如果只能阻止/取消阻止特定节点,则可能需要多级策略。即,为每个部分创建一个节点,并在此图中运行初步路径查找
对于NPC阻止的节点等问题,需要另一种解决方案,例如在路径查找过程中忽略它们,并在发生冲突时处理冲突。如果两个分幅之间从来没有任何可行走的路径,则它们没有理由成为同一图形的一部分。如果贴图是静态的,则可以使用Djikstra将贴图预处理为确保所有分片之间具有有效路径的部分 如果贴图是完全动态的,则可能必须设置节点数的硬上限 如果只能阻止/取消阻止特定节点,则可能需要多级策略。即,为每个部分创建一个节点,并在此图中运行初步路径查找 对于被NPC阻止的节点,需要另一种解决方案,例如在路径查找过程中忽略它们,并在冲突发生时处理冲突