【Unity】
マウスカーソルの画像(見た目)をデフォルトから変更する方法

設定で変える方法とプログラムから変える方法を紹介

投稿日 2025/08/03 更新日 2025/08/03


こんにちは。IT業界歴6年目の「元木皇天」です。

今回はUnityで、マウスカーソルのアイコン(見た目)を変更する方法について解説いたします。

やりたいこと

1. マウスカーソルのアイコンを設定で変える

2. マウスカーソルのアイコンをプログラムで変える


参考文献

Unity公式リファレンス - SetCursor
Unity公式リファレンス - Player設定


環境

・OS:MacOS Sequoia 15.5
・Unity:Ver Ver 6000.0.38f1

Player設定からデフォルトのマウスカーソルを変更する

はじめに、ゲーム内で表示されるマウスカーソルを設定から変更する方法を記載します。


まず、変更するマウスカーソルの画像を用意して、Unity内に取り込んでおきます。

今回は例として以下の画像を使用します。

変更するマウスカーソルの画像

次に、画面上部メニューから「Edit」→「Project Settings」を開きます。

EditからProject Settingsを開く

サイドメニューから「Player」を開くと「Default Corsor」の項目があるのが確認できます。

ここに先ほど用意した画像を指定することで、ゲーム内でのマウスカーソルの画像を変更することができます。

マウスカーソルが変更されたゲーム画面のキャプチャ

プログラムからマウスカーソルを変更する(SetCursor)

次に、プログラムからマウスカーソル画像を変更する方法について解説します。

今回は例として、ボタンをクリックしたらマウスカーソル画像を変えるようにします。

実践で使う場合は、ドラッグした場合・ミニゲームに切り替わった場合など、条件に応じて表示を切り合えると良いでしょう。

プログラムは以下のとおりです。

using UnityEngine;

public class ChangeMouseImage: MonoBehaviour
{
    public Texture2D cursorTexture;
    public CursorMode cursorMode = CursorMode.Auto;
    public Vector2 hotSpot = Vector2.zero;

    public void OnClick()
    {
        // カーソル画像を変更する
        Cursor.SetCursor(cursorTexture, hotSpot, cursorMode);
    }
}

※以下は実際にUnityでセットした様子

マウスカーソル変更スクリプトを適用したボタン

メンバ変数の意味は以下のとおりです(公式ドキュメントを和訳したものと私の解釈)。

  • cursorTexture
    • カーソルに使用するテクスチャです。テクスチャを使用するには、`Read/Write` を有効にしてインポートしてください。または、デフォルトのカーソルインポート設定を使用することもできます。カーソルテクスチャをコードから作成する場合は、RGBA32 形式で、alphaIsTransparency が有効で、ミップチェーンがない状態にする必要があります。デフォルトのカーソルを使用するには、テクスチャを `Null` に設定してください。
    • 管理人の解釈:マウスカーソルの画像
  • cursorMode
    • サポートされているプラットフォーム上でこのカーソルをハードウェアカーソルとしてレンダリングするか、ソフトウェアカーソルを強制するかを指定します。
    • 私の解釈:Autoにしておけば良い
  • hotSpot
    • ターゲットポイントとして使用するテクスチャの左上からのオフセット。カーソルの境界内にある必要があります。
    • 画像の中でクリックの判定をさせる位置を座標で指定する。左上が(0, 0)。

実際にボタンをクリックすると、マウスカーソルの画像が切り替わるのを確認できます。

ボタンを押すとマウスカーソル画像が変わるgif

まとめ

ずっと同じマウスカーソルで良いのであればPlayer設定から、動的に変更したいのであればSetCursorを使用すると良いでしょう。

参考文献・おすすめ文献

Unity公式リファレンス - SetCursor

Unity公式リファレンス - Player設定