自分から見て相手がどのくらいの角度の位置にいるか調べる

Vector3 forward = transform.TransformDirection(Vector3.forward);
Vector3 targetDirection = targetObj.transform.position - transform.position;	
float angle = Vector3.Angle(forward, targetDirection);

fowardとして自分の進行方向の向きベクトルを作り、
targetObjの位置から自分の位置を引いたベクトルを作り(自分から相手に向かうベクトル)
それぞれのベクトルの角度差を調べると、0~90度の範囲で角度差が帰る
angleは鋭角で、ベクトルの長さは無視される

なので、進行方向から110度の位置は、80度が返る?
まだ未確認
これで視野角を判定するとマズイかも

角度は常に2つのベクトル間の 鋭角 を返します。(すなわち、必ず角度は180度未満)
これ訳が間違ってるよね?鋭角は90度未満だから
90~180は鈍角だし

原文にacute angleって書いてた。原文が間違ってる。
ちなみに鈍角はobtuse angle 初めて見た
acuteは鋭いって意味があるけど、鋭角は0~90未満の数学用語だよね

タグ:

unity
最終更新:2015年04月27日 17:11