スポンサーリンク
スポンサーリンク
UnityUnityメモ

Unityでマウスカーソルに向かって移動するオブジェクトを作成する方法

Unity

はじめに

Unityを使ったゲーム開発において、マウスカーソルに向かってオブジェクトが移動する機能は、多くのアプリケーションやゲームで見られる人気の高い機能です。この記事では、Unity初心者でも理解しやすいように、マウスカーソルに向かってオブジェクトを移動させる方法をステップバイステップで説明します。

Unityプロジェクトの準備

まず、Unityを開き、「新規プロジェクト」を作成します。プロジェクト名は何でも良いですが、「MouseFollower」とすると、プロジェクトの内容を思い出しやすいかもしれません。3Dテンプレートを選択してプロジェクトを作成しましょう。

シーンのセットアップ

プロジェクトが開いたら、新しいシーンを作成し、「MainScene」と名付けます。次に、移動させたいオブジェクトをシーンに追加します。簡単な例として、Unityのメニューから「GameObject」→「3D Object」→「Sphere」を選択して、球体を作成しましょう。この球体が、後ほどマウスカーソルに向かって移動するオブジェクトになります。

スクリプトの作成

オブジェクトがマウスカーソルに向かって移動するようにするためには、スクリプトを書く必要があります。

Unityのエディタで「Assets」フォルダ内に「Scripts」という新しいフォルダを作成し、その中に「MouseFollower.cs」という名前のC#スクリプトを新規作成します。

スクリプトの中身は以下のようになります。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MouseFollower: MonoBehaviour
{
    private Vector3 mouse;
    private Vector3 target;
    public float speed;

    void Start()
    {
        speed = 0.01f;
    }

    void Update()
    {
        mouse = Input.mousePosition;
        target = Camera.main.ScreenToWorldPoint(new Vector3(mouse.x, mouse.y, 10));
        transform.LookAt(target);
        transform.position += transform.forward * speed;
    }
}


このスクリプトは、Unityでマウスカーソルに追従するオブジェクトを作成するためのものです。スクリプトの動作は以下の通りです:

  • MouseFollowerクラスはMonoBehaviourを継承しており、Unityのゲームオブジェクトにアタッチすることで機能します。
  • private Vector3 mouse;private Vector3 target;は、それぞれマウスカーソルのスクリーン座標と、ゲーム世界内での目標位置を保持するための変数です。
  • public float speed;はオブジェクトの移動速度を制御するパブリック変数です。これにより、インスペクターから直接速度を調整できます。
  • Startメソッドでは、移動速度speedの初期値を0.01fに設定しています。必要に応じてこの値を調整して、オブジェクトの移動速度を変更できます。
  • Updateメソッドは毎フレーム呼び出され、オブジェクトの位置と向きを更新します。まず、Input.mousePositionを使用してマウスカーソルのスクリーン座標を取得し、Camera.main.ScreenToWorldPointメソッドを使ってこれをゲーム世界の座標に変換します。transform.LookAt(target);でオブジェクトがターゲット(マウスカーソルの位置)を常に向くようにし、transform.position += transform.forward * speed;でオブジェクトを前方に向かって移動させます。

このスクリプトをゲームオブジェクトにアタッチし、Unityエディターでプレイモードに入ると、オブジェクトがマウスカーソルを追いかける動作を確認できます。オブジェクトの移動速度は、インスペクターからspeed変数を調整することで変更可能です。

スクリプトの適用

スクリプトを作成したら、それを移動させたいオブジェクトに適用します。この例では、先ほど作成した球体に適用します。球体を選択し、インスペクター画面で「Add Component」ボタンをクリックして、「Scripts」→「MouseFollower」を選択します。

おわりに

これで、Unityでマウスカーソルに向かってオブジェクトが移動するシンプルな機能を実装する方法をマスターしました。この基本を応用すれば、より複雑なゲームのメカニクスを開発することが可能になります。Unityでのゲーム開発は、想像力と創造力があれば無限に広がる世界です。何か新しいことに挑戦したくなったら、この記事を参考にしてみてください。

スポンサーリンク
C-BA memo
タイトルとURLをコピーしました