【Unity 2D】クリックした場所にGameObjectを生成する方法

スポンサーリンク

マウスで左クリックした場所にGameObjectを生成する方法を紹介します。

完成動画

左クリックした場所に赤い円が出現します。

やり方

1.クリックした場所に生成したいGameObjectをPrefab化

1-1.生成したいGameObject(今回は画像の赤いCircle)をAssetsにドラックアンドドロップし、Prefab化する

1-2.開始時に表示はしないのでHierarchyからは削除

2.クリックした場所にGameObjectを生成するスクリプトを作成

2-1.CreateMousePosition.csという名前のスクリプトを作成して、以下のコードを記載する。

using UnityEngine;

public class CreateMousePosition : MonoBehaviour
{
    [SerializeField]
    [Tooltip("クリックしたときに出現させたいGameObject")]
    private GameObject createObject;

    // マウスをクリックした場所(位置としては奥行きが必要(カメラに写るために)なのでVector3を使用)
    private Vector3 clickPosition;

    // Update is called once per frame
    void Update()
    {
        // 左クリックをした場合(初期値は0が左クリック)
        if (Input.GetMouseButtonDown(0))
        {
            // クリックした座標を取得
            clickPosition = Input.mousePosition;

			// z軸が0だと表示されない(カメラと同じz軸にいるため)ので適宜値を入れる(これがカメラからの距離となる)
			clickPosition.z = 10.0f;

            // クリックした場所にGameObjectを生成
            Instantiate(createObject, Camera.main.ScreenToWorldPoint(clickPosition), createObject.transform.rotation);

		}
    }
}

3.GameManagerオブジェクトの設定

3-1.”Create Empty”で空のオブジェクトを作り、GameManagerという名前に変更

3-2.GameManagerにCreateMousePosition.csをアタッチ

3-3.”Create Object”に”Circle”Prefabをアタッチ

完成

これで左クリックした場所にGameObjectが出現します。

コメント

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