我怎样才能稍微向右偏移我的光线投射?
How can I offset my raycast slightly to the right?
我正在将鼠标光标投射到一个点上。
然后我想投射另一个几乎相同的光线投射,唯一的区别是它应该向右稍微偏移。
我在 Unity2D 中执行此操作,最好的方法是什么?
它必须考虑鼠标的位置,因此它的投射方向会偏移到光标位置的右侧。
- 做一个方向向量,你已经有了,因为这应该是你的射线的第二个参数。 (在统一中,我们通过起点和方向定义射线,方向是您的方向向量)
从这个方向向量做一个法向量。
如果你的方向矢量坐标是v1(A; B)那么你的法线矢量就是vNormal(B; -A)
现在你用下面的公式 point += vNormal.normalized * OffsetValue;
来偏移你的原始起点(光线从那里朝向它的方向),假设它存在 public float OffsetValue = 5.0f;
一些视觉效果:
所以,如果我们将你的 mousePos 移动到绿线法线向量(黄线方向向量),我们就可以发射一条像紫线一样的光线。
预期结果:
更新:
这是你想要的结果吗?
因为在这种情况下,您以与偏移 mousePos 相同的方式偏移 hitpoint,然后计算光线的新方向 Vector2 newDir = offsettedHitPoint - mousePos;
我正在将鼠标光标投射到一个点上。 然后我想投射另一个几乎相同的光线投射,唯一的区别是它应该向右稍微偏移。
我在 Unity2D 中执行此操作,最好的方法是什么?
它必须考虑鼠标的位置,因此它的投射方向会偏移到光标位置的右侧。
- 做一个方向向量,你已经有了,因为这应该是你的射线的第二个参数。 (在统一中,我们通过起点和方向定义射线,方向是您的方向向量)
从这个方向向量做一个法向量。
如果你的方向矢量坐标是v1(A; B)那么你的法线矢量就是vNormal(B; -A)
现在你用下面的公式
point += vNormal.normalized * OffsetValue;
来偏移你的原始起点(光线从那里朝向它的方向),假设它存在public float OffsetValue = 5.0f;
一些视觉效果:
更新:
这是你想要的结果吗?
Vector2 newDir = offsettedHitPoint - mousePos;