我怎样才能稍微向右偏移我的光线投射?

How can I offset my raycast slightly to the right?

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

我在 Unity2D 中执行此操作,最好的方法是什么?

它必须考虑鼠标的位置,因此它的投射方向会偏移到光标位置的右侧。

  1. 做一个方向向量,你已经有了,因为这应该是你的射线的第二个参数。 (在统一中,我们通过起点和方向定义射线,方向是您的方向向量)
  2. 从这个方向向量做一个法向量。

    如果你的方向矢量坐标是v1(A; B)那么你的法线矢量就是vNormal(B; -A)

  3. 现在你用下面的公式 point += vNormal.normalized * OffsetValue; 来偏移你的原始起点(光线从那里朝向它的方向),假设它存在 public float OffsetValue = 5.0f;

一些视觉效果: 所以,如果我们将你的 mousePos 移动到绿线法线向量(黄线方向向量),我们就可以发射一条像紫线一样的光线。 预期结果:

更新:

这是你想要的结果吗? 因为在这种情况下,您以与偏移 mousePos 相同的方式偏移 hitpoint,然后计算光线的新方向 Vector2 newDir = offsettedHitPoint - mousePos;