マウスカーソルに追従する動きで、横方向のみ動かせるしくみを作ってみましょう。
このようにマウスを操作しても、オブジェクトが動くのは、X方向のみです。
マウスカーソルの位置をXYZの座標で表せるように、ワールド座標への変換が必要です。
関連記事:
マウスカーソルについていくオブジェクト
マウスをドラッグしてオブジェクトを動かす
クリックした空間にオブジェクトを置く
オブジェクトを掴んで動かす(斜めアングル)
オブジェクトを掴んで動かす(Zを固定)
クリックのたびに左右移動を切り替える
Y座標を固定させたカーソル追従
Cubeを新規作成します。
CubeMove.csを作成して、Cubeに追加します。
CubeMove.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeMove : MonoBehaviour { private Vector2 mousePos; private Vector3 objPos; void Update() { mousePos = Input.mousePosition; objPos = Camera.main.ScreenToWorldPoint(new Vector3(mousePos.x, mousePos.y, 10)); objPos.y = this.transform.position.y; this.transform.position = objPos; Debug.Log(mousePos); } } |
ゲームプレイしてみましょう。
カーソルの動きは、ワールド座標で設定したmouse.x、mouse.y、奥行きはMainCameraから見た距離として10で設定しています。
ここに、objPos.y = this.transform.position.y; を入れて、配置したオブジェクトのY座標に固定しています。
関連記事:
マウスカーソルについていくオブジェクト
マウスをドラッグしてオブジェクトを動かす
クリックした空間にオブジェクトを置く
オブジェクトを掴んで動かす(斜めアングル)
オブジェクトを掴んで動かす(Zを固定)
クリックのたびに左右移動を切り替える