マウスで左クリックした場所に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が出現します。
コメント