ゲーム化!tomo_manaのブログ

ゲーム化!tomo-manaのブログ

Unityでゲームを作る方法について紹介しています

Unity/C# クリックした場所にオブジェクトを表示するプログラム

クリックした場所にオブジェクトを表示するプログラム。

ChatGPT-4で出力したコードに、少し改変を加えたものです。

格子グリッドに沿わせる方法、アイソメトリックグリッドに沿わせる方法はそれぞれ以下:

(格子グリッド版)
tomo-mana.hatenablog.com

(アイソメトリックグリッド版)
tomo-mana.hatenablog.com

コード

AddGameObjectOnClick.cs

using UnityEngine;

// ChatGPT-4 2023/5/8
// 任意の場所にオブジェクトを配置(座標フリー)
public class AddGameObjectOnClick : MonoBehaviour
{
    public GameObject circlePrefab;

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            Vector3 position = Camera.main.ScreenToWorldPoint(Input.mousePosition);
            position.z = 0f;

            GameObject newCircle = Instantiate(circlePrefab, position, Quaternion.identity);
            // Do something with newCircle here, if needed
        }
    }
}

コンポーネント(Inspector)

以下のコンポーネントが作成できます。

作成されるコンポーネント(Inspectorウィンドウ)


"CirclePrefab" に、スプライトのプレハブをアタッチします。

プレハブ(Prefab)

スプライトで作ったプレハブを用意します。UGUIコンポーネント(Imageなど)では動作しません。


Hierarchyウィンドウで スプライト(ここでは仮に 2D Objects → Sprites→Circle)を作成し、

Hierarchyウィンドウ→右クリックメニュー


作成されたゲームオブジェクトをProjectフォルダにドラッグ&ドロップします。

GameObjectのプレハブ化(Hierarchy→Projectウィンドウにドラッグ&ドロップ)


作成したプレハブを、先ほどのコンポーネントにアタッチします。

プレハブをコンポーネントにアタッチ


circlePrefabという名前ですが、任意のスプライトのPrefabで動作します。