你在做游戏里“怪物方位判定”的时候,十有八九会写到这行代码:
Vector3dir=targetPos-selfPos;然后拿这个dir去做点积、叉积、扇形判定、背刺判定、锁定目标……
这行代码你可能背得比乘法口诀还熟。
但只要团队里来一个新同学,或者你某天熬夜到凌晨两点,脑子一抽,就会冒出一个灵魂拷问:
“为啥是目标位置减自己位置?”
“能不能反过来?”
“反过来会咋样?”
“这不就是俩点相减吗,凭啥这么减就代表方向?”
这篇文章我们就专门把这个看似“幼儿园问题”,但实际是你后面所有判定(前后左右、扇形、背刺、格挡、视野、锁定)都要靠它的基础原理讲透。
而且我们用大白话,不讲玄学公式堆砌。你看完会非常笃定:
- 方向向量到底是什么
- 两个点相减到底在几何上发生了什么
- 为什么“终点 - 起点”是从起点指向终点
- 反过来会造成哪些实际 bug(背刺判定变正面、AI 转身反了、扇形技能朝后打等)
- 在 Unity/3D/2D 里