【Unity自己流メモ#10】マウスカーソルに合わせて弾を発射させるためのコード

今日も元気にUnityしていますか?あきです。

今回は、マウスカーソルに合わせて弾を発射させるためのコードを共有します。

public class Bullet : MonoBehaviour
{
 //弾を格納
 public GameObject bullet;
 //弾の速度
 public float bulletSpeed;

 private void Update()
{
  if(Input.GetMouseButtonDown(0))
  {
    //弾を生成する
    GameObject bulletClone = Instantiate(
                    bullet,
                    transform.position,
                    Quaternion.identity);

    //クリックした座標を取得する
    Vector3 worldMousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);

    //「向き」を生成
    Vector3 bulletForward = Vector3.Scale((worldMousePos - transform.position),new Vector3(1,1,0)).normalized;

    //速度を与える
    bulletClone.GetComponent<Rigidbody2D>().velocity
        = bulletForward * bulletSpeed;
   }
 }
}

「 Vector3 worldMousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);」のところでは、スクリーン座標からワールド座標に変換しています。

コメント

タイトルとURLをコピーしました