如何将射线广播稍微向右偏移?

时间:2019-09-10 09:31:03

标签: c# unity3d raycasting

我正在将鼠标光标投射到一个点。 然后,我想投射另一个几乎相同的光线投射,唯一的区别是它应该在右侧稍有偏移。

我正在Unity2D中执行此操作,关于此的最佳方法是什么?

必须考虑鼠标的位置,以使其投射的方向偏移到光标位置的右侧。

感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:2)

  1. 制作一个方向矢量,您已经有了它,因为它应该是射线的第二个参数。 (我们统一地通过起点和方向来定义射线,该方向是您的方向向量)
  2. 从该方向矢量制作法线矢量。

    如果方向矢量坐标为v1(A; B),则法线矢量为vNormal(B; -A)

  3. 现在,假设存在point += vNormal.normalized * OffsetValue;

    ,您可以通过以下公式public float OffsetValue = 5.0f;偏移原始起点(光线从其朝其方向前进)

一些视觉效果:enter image description here 因此,如果我们按绿线法线向量(黄线方向向量)移动mousePos,则可以像紫线一样发射光线。 预期结果: enter image description here

更新

这是您想要的结果吗? enter image description here 因为在这种情况下,您以与偏移mousePos相同的方式偏移了生命值,然后为射线Vector2 newDir = offsettedHitPoint - mousePos;

计算了新的方向