マウスカーソルに、オブジェクトが追従するしくみを作ってみましょう。
マウスの動きに合わせて、Cubeオブジェクトも動きます。
この動きでは、マウス位置をスクリーン座標から、ワールド座標へ変換しなければなりません。
関連記事:
オブジェクトを掴んで動かす(斜めアングル)
オブジェクトを掴んで動かす(Zを固定)
マウスカーソルを追いかけるオブジェクト
マウスカーソルを追従しながらクリックで叩く
マウスをドラッグしてオブジェクトを動かす
マウスカーソルに追従して左右に移動
クリックした空間にオブジェクトを置く
マウスカーソルについてくるオブジェクトを落下
取ったオブジェクトを前で持ち続ける
プレーヤーの上部で一緒に動くオブジェクト
スクリーン座標をワールド座標へ変換
Cubeを新規作成します。
CubeMove.csを作成して、Cubeに追加します。
CubeMove.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeMove : MonoBehaviour { private Vector3 mouse; private Vector3 target; void Update () { mouse = Input.mousePosition; target = Camera.main.ScreenToWorldPoint(new Vector3(mouse.x, mouse.y, 10)); this.transform.position = target; } } |
ゲームプレイしてみましょう。
カーソルの位置に合わせて、Cubeオブジェクトも動いています。
ScreenToWorldPointを使って、マウス位置をスクリーン座標からワールド座標へ変換しています。
マウス位置を検出しただけでは、奥行き(Z)は取得できないため、Zには10を入れています。
関連記事:
オブジェクトを掴んで動かす(斜めアングル)
オブジェクトを掴んで動かす(Zを固定)
マウスカーソルを追いかけるオブジェクト
マウスカーソルを追従しながらクリックで叩く
マウスをドラッグしてオブジェクトを動かす
マウスカーソルに追従して左右に移動
クリックした空間にオブジェクトを置く
マウスカーソルについてくるオブジェクトを落下
取ったオブジェクトを前で持ち続ける
プレーヤーの上部で一緒に動くオブジェクト