Kar*_*ran 5 c# unity-game-engine
我下载了一个迷宫精灵来作过期用途,以便在游戏中使用,我正尝试在墙壁上添加对撞机。但是由于迷宫很复杂,因此要在每面墙上添加Box collider 2D都是一项艰巨的工作。
我尝试使用Polygon collider 2D,它是某种看起来不准确的网格碰撞器,是否有更好的方法将碰撞器添加到迷宫中,还是可以通过某种方式检测迷宫的结构来以编程方式添加碰撞器?
这类似于我正在使用的迷宫: 
添加评论
这个问题有几个答案,具体取决于您的方法。
1. 基于精灵的方法(其中有迷宫图像)
确保精灵是透明的,并且仅在墙壁区域上不透明(PNG 图像可以具有透明度)。执行此操作后,您应该能够附加多边形碰撞器以自动创建碰撞器。如果图像像您所说的那样太大/复杂,那么您可能需要将其分成几个不同的图像(例如 4 个象限),然后排列它们并将多边形碰撞器附加到每个对象。一般来说,碰撞器越简单,它就越准确和高效。
上述方法的缺点是您必须做大量的手动工作。如果您知道您有很多手绘迷宫,需要为此构建碰撞器,那么可能值得使用脚本自动化上述过程,但这可能会很快变得复杂,除非您知道自己在做什么正在做。本质上,自动化脚本可以递归地将精灵分割成象限,创建相应的GameObjects,然后添加PolygonColliders到每个象限中。
在照片编辑程序中手动分割图像或制定算法来生成迷宫和碰撞器对您来说可能比自动化更快,具体取决于您想要进入代码的程度。
2. 基于算法的方法
幸运的是,网上有很多迷宫编程教程。大多数用于 3D 迷宫,但制作 2D 迷宫的逻辑是相同的。如果您对此选项感兴趣,那么我可以在此处和此处找到有关该主题的教程。为了在每个教程中生成迷宫后添加碰撞,您可以在BoxCollider2D每个有墙的单元格的每一侧添加一个(或者如果使用预制件,则BoxCollider2D向预制件添加一个)。
| 归档时间: |
|
| 查看次数: |
171 次 |
| 最近记录: |