代码之家  ›  专栏  ›  技术社区  ›  jtth

计算两个未使用相同变换定位在一起的对象之间的距离?

  •  0
  • jtth  · 技术社区  · 8 年前

    Inline distance image

    Image link (for those who don't see the inline image)

    我试图计算对象之间的距离,(使用Vector3.distance方法尝试位置和局部位置),但似乎存在问题。

    正如您在图像中所看到的,场景中的两个对象并不位于同一位置,但是,它们的变换讲述了不同的故事-它们具有完全相同的变换信息(位置、旋转和比例)。

    可以肯定的是,这里忽略了一些简单的事情,但是,如何计算不在同一位置但具有相同变换的两个对象之间的距离?

    1 回复  |  直到 8 年前
        1
  •  2
  •   JoRouss    6 年前

    以下解决方案适用于原始帖子中描述的问题,而不适用于编程生成的网格

    我看到其中一个轴没有居中。

    让你的两个对象都成为一个空游戏对象的子对象,这样你就可以相对于它们的父对象移动它们。这就像改变他们的轴心。

    基于父游戏对象计算距离。

    例子:

    空游戏对象的父对象1。移动对象1。请注意,父对象的变换没有更改。因此,只需移动object1,使其中心与父变换对齐。然后,从那里创建一个预制件。这是您的新对象1。

    对任何要控制其轴的对象执行此操作。

    备选方案 : 如果前面的解决方案不适合您的需要,那么实现所需的一种简单方法是基于 transform.renderer.bounds.center

    然后,您的计算将基于对象边界的中心,而不是其实际位置,从而消除了枢轴问题。