如何在随机无碰撞位置实例化GameObject?

时间:2017-07-18 12:21:16

标签: c# unity3d random gameobject

我在Unity制作游戏。我在随机位置上实例化(圈定)GameObjects并且效果很好。我想要做的是仅在不与其他GameObjects重叠的位置进行实例化。没有我在互联网上找到的解决方案解决了我的问题所以我该怎么办?这可能吗?

1 个答案:

答案 0 :(得分:2)

确定。为了检测您的圆圈是否有空间,您需要使用对撞机或数学/体积方程。但无论你采用哪种方式,你都需要引用一个位置(变换x,y,z)来对一个区域进行采样,并确定你的圆圈是否可以在那里生成。

您可以执行以下操作之一:

  1. 以正常方式创建对象,但如果发生碰撞,则立即销毁该对象。然后产生另一个。
  2. 将一个spawner游戏对象移动到与上面相同的检查位置,但只有在确定有圆圈的空间时才会产生它。 (编辑)然后禁用或移动生成器,您只需要其中一个对象来完成所有生成。
  3. 从一组预定义位置(场景中的矢量3或现有游戏对象)中选择哪个类生成圆圈,然后执行上述检查之一。
  4. 这取决于您的需求以及重叠的可能性。

    希望它有所帮助。