Unity3D中实体内部段的长度

时间:2014-12-11 17:30:18

标签: math 3d unity3d formula trigonometry

我正在使用Unity3D,我遇到以下情况:

  • 我有(至少)3个游戏对象,A,B和C.
  • 我知道A,B和C的位置和旋转。
  • 我知道C的大小。

我需要从A到B进行光线投射。这条光线穿过C,我需要知道C内部段的长度。使用三角形的相似性标准我可以得到我想要的东西如果我然而,在2D空间中:

  • 我在3D空间。
  • 草图中的矩形可以是球体,立方体或平行六面体。
  • 我需要使用光线投射方法而不是线播,因为我需要获得更多关于我所击中的实体的信息(实际上我是使用光线投射方法)。
  • A和B之间可能有多个固体(更多Cs),我需要得到每个人的片段长度。

我制作了这个简单的草图来澄清我的情况,基本上我需要得到红色段的长度。

我不介意获取Unity的代码,我只需要一些公式的帮助,一旦我拥有它我可以自己编写脚本,但是如果Unity提供了一种简单的方法来获取它我会很高兴知道如何去做。

谢谢。

enter image description here

1 个答案:

答案 0 :(得分:0)

我可能没有正确理解这一点,所以这可能是不正确的。你不能只是Raycast它,然后在对象C的RaycatHit.pointOnTriggerEnter()获得OnTriggerExit()。将两个点作为Vector3s,你可以从中减去一个其他或使用Vector3.Distance