1,Unityの2Dでキャラクターの正面をマウスの方向に向けるには?
まず必要なのはキャラクターの位置とマウスの位置、キャラクターの位置はオブジェクトクラスから取って取れますせす、次にマウスの位置を取るには
Input.mousePosition;
これでまずマウスの位置を取れましたが、これはスクリーン座標ですのでワールド座標に変換してあげないと使えませんそうするために、そうするためにカメラクラスを持って来てScreenToWorldPoint関数を使ってワールド座標にします。
Vector2 mousePos; camera.ScreenToWorldPoint(Input.mousePosition);
ワールド座標のマウスが取れました、これでキャラクターの位置とマウスの位置が揃いました
次に二つの位置の距離を取ります
Vector2 lookDir = mousePos - Character.position;
そしてこれでどうやってやるのかというと、Matf.Atan2という関数で距離を使って角度を求められます。
float angle = Mathf.Atan2(lookDir.y, lookDir.x) * Mathf.Rad2Deg - 90f;
これでマウスの方向にキャラクターの正面を向くように出来ました!
簡単に説明するとMathf.Atan2でラジアンが変えてくるのでMathf.Rad2Degをかけて度に変えます、そして
-90度を引いてやって正面を向かせます。
これでマウスの方向にキャラクターを向かせることができました。