はじめに
Unityでゲームを作る時、マウスの動きに合わせてオブジェクトが動くようにする方法を学びましょう。今回は、特にマウスカーソルの方向に棒状のオブジェクトが回転するように設定する方法を紹介します。初心者の方でも簡単に理解できるように説明しますので、Unityでのプログラミングが初めての方でも安心してください。
ステップ1: Unityプロジェクトの準備
まず、Unityを開いて新しいプロジェクトを作成しましょう。プロジェクト名は何でも良いですが、「MouseRotation」という名前で作ると、何のプロジェクトかわかりやすいですね。
ステップ2: オブジェクトの作成
- Unityのエディター上で、ヒエラルキー(Hierarchy)ウィンドウの「右クリック」メニューから「3D Object」→「Cylinder」を選びます。
- 作成された立方体を棒状に見えるように変形させましょう。インスペクター(Inspector)ウィンドウで「Scale」の設定を変更します
- 空のオブジェクトを作成して位置と回転を画像のように調整し、Cylinderを空のオブジェクトにドラッグ&ドロップして、子オブジェクトに設定します。
ステップ3: スクリプトの作成
- 「Assets」フォルダ内で右クリックし、「Create > C# Script」を選択します。スクリプトの名前を「StickRotate」とします。
- スクリプトを作成したら、それを空のオブジェクトにドラッグ&ドロップしてアタッチします。
- スクリプトをダブルクリックして、コーディングを始めます。
スクリプトのコード
以下のコードを入力またはコピーして、スクリプトに貼り付けてください。このコードは、マウスカーソルの位置に応じて棒状のオブジェクトが回転するようにします。
スクリプトの動作解説
- マウスカーソルの位置取得:
Update
メソッド内で、Input.mousePosition
を使用してマウスカーソルのスクリーン座標(x, y)を取得します。 - ターゲット座標の変換:
Camera.main.ScreenToWorldPoint
メソッドを使用して、マウスカーソルのスクリーン座標をワールド座標に変換します。ここで、z
座標に10
を指定していますが、これはカメラからの距離を意味し、オブジェクトが適切にマウスカーソルを向くための距離です。 - オブジェクトの回転:
transform.LookAt(target)
メソッドを使用して、変換したワールド座標(ターゲット)をオブジェクトが「見つめる」ようにします。これにより、オブジェクトは自動的にマウスカーソルの方向に回転します。
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);
}
}
ステップ4: ゲームのテスト
- Unityエディターに戻り、「Play」ボタンを押してゲームを実行します。
- マウスカーソルを動かしてみると、棒状のオブジェクトがカーソルの方向を向いて回転するのを見ることができます。
まとめ
これで、Unityでマウスカーソルに向けてオブジェクトを回転させる基本的な方法をマスターしました。この技術は、ゲーム制作で様々な面で応用することが可能です。この機能を使用してオリジナルのゲームを作ってみてください
おすすめのアセット
Squad Shooter Template Editorは、Unityでシューティングゲームを簡単に作れるテンプレートです。このアセットを使えば、チームベースのシューティングゲームを短時間で作成できます。キャラクターや武器、敵のAIなど、必要な要素がすべて揃っています。