平面オブジェクトのエリア内で、クリックするたびにオブジェクトが移動する仕組みをつくってみましょう。
プレハブ生成ではなく、クリック位置にそのままオブジェクトを配置します。
関連記事:
クリックした空間にオブジェクトを置く
クリックしたところにPrefabを生成する
マウスをドラッグしてオブジェクトを動かす
マウスカーソルについていくオブジェクト
マウスカーソルに追従して左右に移動
クリックした場所からボールを発射する
オブジェクトを掴んで動かす(斜めアングル)
オブジェクトを掴んで動かす(Zを固定)
Rayを使ってオブジェクトを移動
平面オブジェクトとSphereを用意しましょう。
PutTarget.csを作成し、Sphereに追加します。
PutTarget.csを書きます。
Ray(目に見えないレーザービーム)が、オブジェクトとぶつかる位置を検知。
その位置に、Sphereの座標を移動させるしくみです。
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 PutTarget : MonoBehaviour { void Update() { if (Input.GetMouseButtonDown(0)) { RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit)) { transform.position = new Vector3 (hit.point.x, 0.5f, hit.point.z); } } } } |
プレイしてみましょう。
Instantiateを使った場合は、その都度プレハブを消さなければなりません。
このようなオブジェクトの移動であれば、移動するたびに位置情報を取得できます。
関連記事:
クリックした空間にオブジェクトを置く
クリックしたところにPrefabを生成する
マウスをドラッグしてオブジェクトを動かす
マウスカーソルについていくオブジェクト
マウスカーソルに追従して左右に移動
クリックした場所からボールを発射する
オブジェクトを掴んで動かす(斜めアングル)
オブジェクトを掴んで動かす(Zを固定)