Unity事例ノート

UNITY

マウスをドラッグしてオブジェクトを動かす

Cubeをマウスドラッグで動かせるように、コードをつくってみましょう。

関連記事:
【Unity C#】マウスカーソルについていくオブジェクト
【Unity C#】マウスカーソルに追従して左右に移動
【Unity C#】クリックした空間にオブジェクトを置く





スクリーン座標とワールド座標

コードを作る前に、ボックスコライダーを付けておくことが前提になります。

BoxColliderコンポーネントを忘れずに、追加しておきましょう。

MouseDrag.csを作成し、コードは次のように記述しました。

ドラッグでオブジェクトを動かす場合、スクリーン座標とワールド座標の、変換が必要。

マウスドラッグという操作は、もちろん、Z座標のような奥行きを認識することができません。

ですので、テキストやボタンのようなUIで用いられるスクリーン座標によって、現在位置を捉えねばなりません。

まずは、Cubeの位置をスクリーン座標に変換。

ドラッグ操作のマウス位置を取得。

マウス位置を再びワールド座標に変換して、現在位置として表示。

コードはこのような手順に沿っています。

プレイしてみましょう。

オブジェクトをつかんで動かせるようになりました。

関連記事:
【Unity C#】マウスカーソルについていくオブジェクト
【Unity C#】マウスカーソルに追従して左右に移動
【Unity C#】クリックした空間にオブジェクトを置く