クリックしたところに、プレハブを出現させる仕組みをつくってみましょう。
ScreenToWorldPointを使って、スクリーン座標をワールド座標に変換。
左クリックした位置に、Sphereのプレハブを生成します。
関連記事:
【Unity C#】クリックした空間にオブジェクトを置く
【Unity C#】AddForceでボールを前へ動かす
【Unity C#】クリックした場所からボールを発射する
【Unity C#】クリックした位置にオブジェクトを生成(Ray)
【Unity C#】定位置からボールを発射させるしくみ
【Unity C#】連射防止のしくみ
【Unity C#】ターゲットに向かってボールをぶつける
【Unity C#】ボールの色を次々と変化させる
ScreenToWorldPointでワールド座標に変換
まずはプレハブを準備しましょう。
Sphereオブジェクトを作成して、カラーをつけました。
Sphereをプレハブ化します。
Sphereの元データは削除しましょう。
続いて、クリックした位置にプレハブ生成できるスクリプトをつくります。
空のオブジェクトを作成します。
ClickSphere.csを作成し、GameObject(空のオブジェクト)に追加しましょう。
ClickSphere.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class ClickSphere : MonoBehaviour { public GameObject prefab; private Vector3 mousePosition; void Update() { if (Input.GetMouseButtonDown(0)) { mousePosition = Input.mousePosition; mousePosition.z = 10.0f; Instantiate(prefab, Camera.main.ScreenToWorldPoint(mousePosition),Quaternion.identity); } } } |
プレハブのフィールドができているので、ここにSphereのプレハブデータを入れます。
ゲームプレイしてみましょう。
MainCameraのScreenToWorldPoint()を使って、ワールド座標に変換。
マウスクリックした位置を検出して、Prefabを出現させています。