Unity でオブジェクトをマウス カーソルに追従させる方法

Unity は、インタラクティブなエクスペリエンスを作成するための無限の可能性を提供する強力なゲーム開発プラットフォームです。多くのゲームに共通する機能の 1 つは、オブジェクトがマウス カーソルに追従する機能です。 2D ゲームを開発しているか 3D ゲームを開発しているかに関係なく、この機能を実装すると、プレーヤーの対話性と没入感のレベルを高めることができます。このチュートリアルでは、C# スクリプトを使用して Unity でオブジェクトをマウス カーソルに追従させるプロセスを説明します。

ステップ

  • 新しい Unity プロジェクトを 作成する まず、Unity を起動し、新しいプロジェクトを作成します。ゲームの要件に応じて、2D または 3D プロジェクト テンプレートを選択します。
  • カーソルを追従するオブジェクトを準備する コードを記述する前に、シーン内にマウス カーソルを追従するオブジェクトが必要です。これは、制御したい任意のスプライトまたはゲーム オブジェクトにすることができます。
  • スクリプトをオブジェクトにアタッチします。 Unity 階層でマウス カーソルを追跡するオブジェクトを選択します。次に、create 新しい C# スクリプトを作成し、選択したオブジェクトにアタッチします。
  • C# スクリプトを作成する スクリプトを開いて、次のコードを作成します。

'FollowCursor.cs'

using UnityEngine;

public class FollowCursor : MonoBehaviour
{
    // Update is called once per frame
    void Update()
    {
        // Get the current mouse position in screen coordinates
        Vector3 mousePosition = Input.mousePosition;

        // Convert the mouse position from screen space to world space
        mousePosition = Camera.main.ScreenToWorldPoint(mousePosition);

        // Update the object's position to the mouse position
        transform.position = new Vector3(mousePosition.x, mousePosition.y, transform.position.z);
    }
}

コードの説明:

  • 'Update()' メソッドはフレームごとに呼び出されます。
  • 'Input.mousePosition' 現在のマウスの位置を画面座標で取得します。
  • 'Camera.main.ScreenToWorldPoint()' カメラの視点を考慮して、マウスの位置を画面空間からワールド空間に変換します。
  • 最後に、オブジェクトの位置を変換されたマウスの位置に更新します。

スクリプトを保存し、Unity に戻ります。 Unity はスクリプトを自動的にコンパイルします。

テスト

  • シーンをテストする Unity の再生ボタンを押して、ゲーム ウィンドウ内でマウスを動かします。カーソルの後にオブジェクトが表示されるはずです。
  • 調整 (オプション) スクリプトを変更することで、オブジェクトの動作を調整できます。たとえば、スムージング効果を追加して、動きの急激さを和らげることができます。

さらなるカスタマイズ

  • オブジェクトの位置を特定の範囲内に固定するなど、オブジェクトの動きに制約を追加します。
  • 必要に応じて、オブジェクトの外観を変更したり、機能を追加したりできます。

作業内容を保存する 動作に満足したら、Unity プロジェクトを保存して進行状況を保持します。

結論

Unity のマウス カーソルにオブジェクトを追従させるスクリプトが正常に作成されました。このシンプルかつ効果的な機能により、ゲームのインタラクティブ性が向上し、プレイヤーにとってより没入感のあるエクスペリエンスを生み出すことができます。自由にさらに実験して、プロジェクト固有の要件に合わせて動作をカスタマイズしてください。