3D空間で、クリックした位置にオブジェクトを置けるしくみを作ってみましょう。
Sphereオブジェクトがクリックしたところに移動します。
3Dでのマウスクリックの位置は、XYZの座標で表わせるワールド座標へ変換して、取得します。
関連記事:
クリックしたところにPrefabを生成する
マウスをドラッグしてオブジェクトを動かす
マウスカーソルについていくオブジェクト
マウスカーソルに追従して左右に移動
クリックした場所からボールを発射する
クリックした場所にオブジェクトを置く
オブジェクトを掴んで動かす(斜めアングル)
オブジェクトを掴んで動かす(Zを固定)
3Dでのクリック位置取得
Sphereオブジェクトを作成します。
MousePoint.csを作成して、Sphereに追加します。
MousePoint.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class MousePoint : MonoBehaviour { private Vector3 mousePosition; private Vector3 spherePosition; void Update() { if (Input.GetMouseButtonDown(0)) { mousePosition = Input.mousePosition; mousePosition.z = 10.0f; spherePosition = Camera.main.ScreenToWorldPoint(mousePosition); this.transform.position = spherePosition; } } } |
ゲームプレイしてみましょう。
クリックした座標はワールド座標に変換しています。
クリック位置の奥行き(Z)だけは取得できないため、Zを10に固定しています。
関連記事:
クリックしたところにPrefabを生成する
マウスをドラッグしてオブジェクトを動かす
マウスカーソルについていくオブジェクト
マウスカーソルに追従して左右に移動
クリックした場所からボールを発射する
クリックした場所にオブジェクトを置く
オブジェクトを掴んで動かす(斜めアングル)
オブジェクトを掴んで動かす(Zを固定)