マウスカーソルに追従するオブジェクトを、クリックひとつで落下させてみましょう。
マウスを操作すると、動きに合わせてCubeが移動。
左クリックすれば移動をやめて、床に落下します。
関連記事:
クリックした空間にオブジェクトを置く
マウスカーソルについていくオブジェクト
オブジェクトをクリックすれば落下する
マウスカーソルについていくオブジェクト
マウスカーソルを追いかけるオブジェクト
マウスをドラッグしてオブジェクトを動かす
マウスカーソルに追従して左右に移動
指定の座標まで落下すればPrefabを削除
マウスカーソルを重ねると実行
ScreenToWorldPointを解除
平面とCubeを作成します。
Cubeを地上に出し、リジッドボディを追加します。
ゲームビューではこのよう見えています。
CubeDrop.csを作成し、Cubeに追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeDrop : MonoBehaviour { private bool isDrop; private Vector3 mousePosition; private Vector3 objPosition; void Start() { isDrop = false; } void Update() { if(!isDrop) { mousePosition = Input.mousePosition; mousePosition.z = 10.0f; objPosition = Camera.main.ScreenToWorldPoint(mousePosition); this.transform.position = objPosition; } if (Input.GetMouseButtonDown(0)) { isDrop = true; } } } |
ゲームプレイしてみましょう。
isDropのフラグがtrueの間は、Cubeがマウスについて移動します。
クリックのタイミングで、isDropのフラグはfalseに切り替わり、ScreenToWorldPointが無効に。
マウスに追従しなくなったCubeは、重力に従って落下します。
関連記事:
クリックした空間にオブジェクトを置く
マウスカーソルについていくオブジェクト
オブジェクトをクリックすれば落下する
マウスカーソルについていくオブジェクト
マウスカーソルを追いかけるオブジェクト
マウスをドラッグしてオブジェクトを動かす
マウスカーソルに追従して左右に移動
指定の座標まで落下すればPrefabを削除
マウスカーソルを重ねると実行