Unityでマウスカーソルの画像を変更する方法

マウスカーソルの画像を(一時的に)変更したい場合はCursor.SetCursorを使うと実装できるみたいです。

使い方

例えば、カーソルが特定のエリアにある時にカーソル画像を変更したい場合は次のような感じです。

public class Example : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
{
  public Texture2D cursorTexture;

  public void OnPointerEnter(PointerEventData eventData)
  {
    Cursor.SetCursor(cursorTexture, Vector2.zero, CursorMode.Auto);
  }

  public void OnPointerExit(PointerEventData eventData)
  {
    Cursor.SetCursor(null, Vector2.zero, CursorMode.Auto);
  }
}

これとUI.Buttonを組み合わせれば、ボタン上にカーソルが来た時にカーソル画像を変更したりできるみたいです。

リンク

Unity – Scripting API: Cursor.SetCursor(Texture2D,CursorMode)
https://docs.unity3d.com/ScriptReference/Cursor.SetCursor.html

関連記事

UnityでマウスがUI上にあるかどうかチェックするスクリプト
Unityでは、Physics.Raycastを使ってマウスがオブジェクト上にあるかどうか調べることができます。 Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition); RaycastHit hit; if (Physics.Raycast (ray, out hit)) { // 処理したい内容 } ただし、上...

「タッチデバイス」「マウス操作」両方に対応する場合に参考になりそうなドキュメント
Unityを使っていると、WindowsとAndroid/iOS両方に対応したゲームを作ることもあるかなと思います。その際、Windowsではマウス、Android/iOSではタッチデバイスが基本操作になってくると思いますが、どんな感じに対応すれば良いのか悩む場面もあるかもしれません。 Microsoftのドキュメントですが、そういう場合に参考になりそうな資料がこちらです。 Wind...

ScreenToWorldPointでクリックした位置のWorld座標が取得できない場合
マウスでクリックした位置に対応するWorld座標を取得したい場合、Camera.ScreenToWorldPointを使うと思いますが、たまに正しい値が取得できないことがあります。 Camera.main.ScreenToWorldPoint (Input.mousePosition); そういう場合は、CameraのProjectionをOrthographicに設定してみるとうま...

UnityでInput.GetKeyを使った操作
Unityでキーボード・ゲームパッドを使ってキャラクターを操作したい場合、 if (Input.GetKey("forward")) { transform.position += Vector3.forward * Time.deltaTime; } のような感じでスクリプトを書くと思います。 ここで使う"forward"とかの文字列は [Edit] » [Proj...

Unity2Dでオブジェクトへのクリックを取得する方法
Unity2Dでゲーム内に配置したオブジェクトをクリック(タップ)したい場合は、対象オブジェクトにCollider2D(BoxCollider2DとかCircleCollider2Dなど)を設定した上でPhysics2D.Raycastを使って実装できます。 サンプル void Update() { if (Input.GetMouseButtonDown(0)) { ...