推導
矩陣點乘
點乘的矩陣形式
實際應用
//求目標在主角的前方還是後方
//先求出來目標相對於主角的偏移矢量
v = target.position - transform.position;
//計算偏移和主角位置的點乘
d = Vector3.Dot(v, transform.position);
Debug.DrawLine(v,Vector3.zero);
Debug.DrawLine(Vector3.zero, transform.position);
if (d > 0)
{
print("在前面");
}else if (d < 0)
{
print("在後面");
}
else
{
print("垂直");
}
-----------------------------------上面的應用有點錯誤,留作警醒----------------------------------下面正確解決方案
//求目標在主角的前方還是後方
//先求出來目標相對於主角的偏移矢量
v = target.position - transform.position;
//計算偏移和主角前方位置的點乘
d = Vector3.Dot(v, transform.forward);
Debug.DrawLine( transform.forward * 10, Vector3.zero);
Debug.DrawLine(v, Vector3.zero);
if (d < 0)
{
print("在後面");
}else if (d > 0)
{
print("在前面");
}
else
{
print("垂直");
}