すとーぶろぐ

主にUnity。実質備忘録。

【Unity】Mathf.Atan2で取得する角度を上向き0度スタートで時計回りにする【2D】

 

以前、2点間の角度を求めるスクリプトを紹介しました。

ただし、この記事のやり方だと

・目標点が始点から見て真右にあるときに角度が0°

・反時計回りに角度増加

となってしまいます。

f:id:t_stove_k:20180828160617j:plain

これだと、「普通、目標点が真上にあるときが0°でしょ?」とか「なんで時計回りじゃないの?」みたいな感じで違和感を覚えるかもしれません。たぶん。

というわけで、本記事ではそんな違和感を解消するために、

・目標点が始点から見て真上にあるときに角度が0°

・時計回りに角度増加

となるスクリプトを紹介します。

f:id:t_stove_k:20180828160640j:plain

 

スクリプトはこんな感じ。

以前のスクリプトと異なるのはMathf.Atan2に渡す引数ぐらいです。

以前は第一引数にy座標の差、第二引数にx座標の差を渡しましたが、今回はこの2つの引数を入れ替えて、第一引数にx座標の差、第二引数にy座標の差を渡します

これで、目標点が真上にあるときに角度0°に、そして、時計回りに角度が増加していきます。

ついでに角度の範囲が0~360になるように調整してます。(29~32行目)

 

 

f:id:t_stove_k:20180828164101g:plain

Textで角度をリアルタイムに表示してます。