gpt4 book ai didi

c# - 如何将对撞机添加到复杂的迷宫

转载 作者:太空狗 更新时间:2023-10-29 23:42:56 24 4
gpt4 key购买 nike

我出于过期目的下载了一个迷宫 sprite 以在我的游戏中使用,并且我正在尝试将对撞机添加到墙上。但是由于迷宫很复杂,给每面墙添加一个 Box collider 2D 的工作量相当大。

我尝试使用 Polygon collider 2D,它是某种看起来不准确的网格碰撞器。是否有更好的方法将碰撞器添加到迷宫中,或者是否可以通过某种方式检测迷宫的结构以编程方式添加碰撞器?

这是类似于我正在使用的迷宫的东西:

添加评论

最佳答案

根据您的方法,这个问题有几个答案。

<强>1。基于 Sprite 的方法(你有一张迷宫的图像)
确保 Sprite 是透明的,只有墙壁区域是不透明的(PNG 图像可以具有透明度)。完成此操作后,您应该能够附加多边形碰撞器以自动创建碰撞器。如果图像太大/像你说的那样复杂,那么你可能想将它分成几个不同的图像(例如 4 个象限),然后排列它们并将多边形碰撞器附加到每个对象。一般来说,对撞机越简单,它就越准确和高效。

上述方法的缺点是您必须进行大量手动工作。如果你知道你有很多手绘迷宫需要像这样构建碰撞器,那么可能值得使用脚本自动化上述过程,但除非你知道你在做什么,否则这可能会很快变得复杂。正在做。本质上,自动化脚本可以递归地将 Sprite 分成象限,创建相应的 GameObjects,并向每个象限添加 PolygonColliders

在照片编辑程序中手动分割图像或制定算法来生成迷宫和碰撞器对您来说可能比自动化更快,具体取决于您希望在代码中投入多少。

<强>2。基于算法的方法
幸运的是,网上有很多迷宫编程教程。大多数用于 3D 迷宫,但制作 2D 迷宫的逻辑相同。如果您对此选项感兴趣,那么我找到了有关该主题的教程 here , 和 here .为了在每个教程中生成迷宫后添加碰撞,您可以在每个有墙的单元格的每一侧添加一个 BoxCollider2D(或者如果使用预制件,添加一个 BoxCollider2D 到预制件)。

关于c# - 如何将对撞机添加到复杂的迷宫,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56297375/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com