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

「自分から見て相手がどのくらいの角度の位置にいるか調べる」の編集履歴(バックアップ)一覧に戻る

自分から見て相手がどのくらいの角度の位置にいるか調べる - (2015/04/27 (月) 17:11:57) のソース

 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度が返る?
まだ未確認
これで視野角を判定するとマズイかも

調べると0~180度で返る模様
http://docs.unity3d.com/ja/current/ScriptReference/Vector3.Angle.html
 角度は常に2つのベクトル間の 鋭角 を返します。(すなわち、必ず角度は180度未満)
これ訳が間違ってるよね?鋭角は90度未満だから
90~180は鈍角だし

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