sti*_*ghy 8 algorithm unity-game-engine
我正在开发一个简单的游戏,用户可以放置不同但模块化的对象(例如:轨道,道路等).
我的问题是:当一个靠近另一个放置时,如何匹配和放置不同的对象?
我的第一种方法是为每个模块对象创建一个隐藏的子对象(一个框),并将其放在可以放置其他对象的边框中(参见我的图像示例),这样我就可以使用该坐标(x,y, z)对齐其他对象.
但我不知道最好的方法.
谢谢
概括:
1.定义什么是“捕捉点”
2.定义您的阈值
3.更新新的游戏对象位置
很少解释
1.所以我想你需要一种方法来定义对象的哪些部分是“捕捉点”。因为它们在某些示例中可能很清晰,例如立方体,其中整个顶点可能是捕捉点,但很难定义无定形对象中的每个顶点。
@PierreBaret 公开的解决方案可能是一个简单的解决方案,其中包括在变换组件上定义“捕捉点”。另一种是您建议的,创建空的游戏对象,充当游戏对象上的捕捉点位置。
2.获得这些捕捉点后,当您放置新的游戏对象时,您需要定义一个阈值,只要您不希望每个对象始终捕捉到最近的游戏对象即可。
3.因此,您定义了捕捉点之间的最小距离,因此如果您的捕捉点低于该阈值,您将需要更新其位置,以调整到捕捉点。
视觉表现:
注意: 阈值距离仅显示正方形中 4 个顶点上的 4 个当前阈值检查之一,但该深蓝色圆圈应再重复 3 次,红色正方形的每个绿色捕捉点各一次
当然这种方法看起来很昂贵,您可以进行一些改进,例如在游戏对象之间设置第一个阈值,如果游戏对象在该阈值内,则检查捕捉阈值距离。
希望能帮助到你!