如何在3D中放置Unity monobehavior对象

时间:2017-07-13 01:18:54

标签: unity3d game-physics

所以我知道如何实例化一个对象;但是,我创建了一个不平坦的地形,并在所有对象上实现物理。我将在地点产生物体,但它们需要在地形之上(而不是上方)进行初始化。我可以使用来自非常高的y轴位置的光线投射并向下投射以查看与地形的交点,然后使用该位置+对象y维度的一半(使其位于地形的顶部);然而,地形形状奇特,如果我要把物体放在上面的地形是凹形向上的形状,我创造的物体的一部分将在地下。我一直在想的另一种方法是在地形上方稍微创建一个物体,并允许重力将其降低到它自然地位于地形顶部的高度;然而,这很糟糕......我希望它能立竿见影,而且我认为应该有更好的方法来做到这一点,而不是我的想法。

ASCII绘图:

       ______
      |      |
      |      |
      |______|
         |
-        |
  -      |     -
    -    |    -
      -  |   -
      * -V  -*
          --

Box表示对象,下面的连字符表示下面的地形。 *表示物体与地形的潜在重叠体积。

上面以'V'结尾的行表示SampleHeight的想法。它检查该特定点的高度,因为它仅将Vector3作为输入。如果我放置对象(带有偏移量)以使对象的底部表面接触“V”下方的点,则下边缘仍将穿过地形。

0 个答案:

没有答案