ーぶろぐスマートフォン用の表示で見るすとーぶろぐ主にUnity。この広告は、90日以上更新していないブログに表示しています。Unity「2点間の角度を取得する」よりも「点Aから見て点Bは何度の位置にあるのかを取得する」みたいな感じに言った方がピンとくるかもしれません。スクリプトはこんな感じ。GetAngle関数の部分を簡単に説明します。2点(startとtarget)のx座標とy座標の差をそれぞれ求めます。その2つの差を引数としてMathf.Atan2に渡せば2点間の角度がラジアンで返ってくるので、Mathf.Rad2Degで度に変換しておしまい!ただし、求められる角度はtargetがstartの真右にあるときに0度となります。角度の範囲は-180°~180°です。Textを使って2点間の角度をリアルタイムに表示してみました。Mathf.Atan2についてここで、上のスクリプトにも登場しているMathf.Atan2について少しだけ説明します。数学の復習になりますが、tan(タンジェント)とその逆関数Atan(アークタンジェント)の関係を式で表すとtanX=YX=AtanYとなります。ご覧の通り、tanXの値がわかれば角度Xを求めることができます。Unityにはtanの値を渡すと角度を返してくれるMathf.Atanという関数が備えられています。Mathf.Atanが返してくれる角度は-π/2~π/2で、半周分だけです。その理由は、Mathf.Atanの引数がtanの値だけだからです。0°~360°の範囲で、例えば、tanの値が1のとき、角度は45°と225°の2つの場合が考えられます。このとき、sinとcosの値もわかれば、45°なのか225°なのかを判別することができるのですが、Mathf.Atanの引数はtanのみです。sinとcosの値はわからないので、判別できません。一周分の角度を取得したい場合どうすればいいのでしょう?そんな時はMathf.Atan2を使いましょう!Mathf.Atan2もMathf.Atanと同様に角度を返してくれる関数です。異なるのは、引数です。Mathf.Atan2には引数としてx座標とy座標を渡します。この2つの引数からtanだけでなく、sinとcosの値も求められるので、一周分の角度を返すことができます。AtanとAtan2の違いについて本記事よりわかりやすく説明しています。世界に色を取り戻しました。以前、2点間の角度を求めるスクリプトを紹介しました。»プロフィールid:t_stove_k福岡に生息中。月別アーカイブリンクはてなブログブログをはじめる週刊はてなブログはてなブログProはてなブログをはじめよう!t_stove_kさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。