目次
前回のチュートリアル
はじめに
前回は、プレイヤーが画面外に出ないように移動範囲を制限しました
今回は、プレイヤーがマウスカーソルの方を向くようにしていきます
プレイヤーをマウスカーソルの方に向ける
このチュートリアルで作成するゲームは全方位シューティングであり、
プレイヤーは、マウスカーソルが存在する方向に弾を発射します
今回は、まず、プレイヤーがマウスカーソルの方を向くようにしていきます
「Utils」スクリプトをコードエディタで開き、
Utils クラスの末尾に下記のコードを記述します
// 指定された 2 つの位置から角度を求めて返す public static float GetAngle( Vector2 from, Vector2 to ) { var dx = to.x - from.x; var dy = to.y - from.y; var rad = Mathf.Atan2( dy, dx ); return rad * Mathf.Rad2Deg; }
そして、「Player」スクリプトをコードエディタで開き、
Update 関数の末尾に下記のコードを記述します
// プレイヤーのスクリーン座標を計算する var screenPos = Camera.main.WorldToScreenPoint( transform.position ); // プレイヤーから見たマウスカーソルの方向を計算する var direction = Input.mousePosition - screenPos; // マウスカーソルが存在する方向の角度を取得する var angle = Utils.GetAngle( Vector3.zero, direction ); // プレイヤーがマウスカーソルの方向を見るようにする var angles = transform.localEulerAngles; angles.z = angle - 90; transform.localEulerAngles = angles;
これで Unity を再生すると、
プレイヤーがマウスカーソルの方を向くようになったことが確認できます
次回は、ゲームの見栄えを少し良くするため、背景がスクロールするようにしていきます