棒状のオブジェクトの先が、マウスカーソルの方向にむかって回転するしくみを作りましょう。
カーソルの動きに合わせて、シリンダーの先端も回転しながら動いていきます。
野球のバットコントロールなど、活用できるシーンはたくさんありそうです。
関連記事:
回転軸を変えてオブジェクトを回す
90°回転して叩くような動き
マウスカーソルを追従しながらクリックで叩く
スプリングを使って棒を振るような動き
クリックした位置にオブジェクトを傾ける
マウスカーソルの方へ向ける
クリックのたびに回転を開始・停止
棒の先がマウスに向かって回転する
シリンダーを作成し、Y方向を3にします。
空のオブジェクトを作成します。
GameObject(空のオブジェクト)の位置、回転を変更します。
Cylinderをドラッグ&ドロップし、GameObjectと親子関係をつくります。
StickRotate.csを作成し、GameObjectに追加します。
StickRotate.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class StickRotate : MonoBehaviour { private Vector3 mouse; private Vector3 target; void Update () { mouse = Input.mousePosition; target = Camera.main.ScreenToWorldPoint(new Vector3(mouse.x, mouse.y, 10)); transform.LookAt(target); } } |
ゲームプレイして、マウスを動かしてみましょう。
マウスカーソルに合わせて、オブジェクトの先端も動いていきます。
関連記事:
回転軸を変えてオブジェクトを回す
90°回転して叩くような動き
マウスカーソルを追従しながらクリックで叩く
スプリングを使って棒を振るような動き
クリックした位置にオブジェクトを傾ける
マウスカーソルの方へ向ける
クリックのたびに回転を開始・停止