以下の内容はhttps://bluebirdofoz.hatenablog.com/entry/2025/08/17/234108より取得しました。


Unityでマウスポインタが画面上にあるか判定する

本日はUnityの小ネタ枠です。
Unityでマウスポインタが画面上にあるか判定する方法です。

Camera.pixelRect

Camera.pixelRectはゲーム画面上のピクセル座標でどこにカメラが描画されているかの2次元範囲を返します。
docs.unity3d.com

Rect.Contains

渡されたポイントが矩形内にあればTrueを返します。
docs.unity3d.com

サンプルスクリプト

マウスポインタがメインカメラが描画されている範囲上にあるときログ出力を行う以下のサンプルスクリプトを作成しました。
・CameraRectTest.cs

using UnityEngine;

public class CameraRectTest : MonoBehaviour
{
    void Update()
    {
        // マウスがカメラのビューポート範囲内にあるかをチェックしてログ出力する
        if (IsMouseOverCamera())
        {
            Debug.Log("Mouse is over camera viewport");
        }
        else
        {
            Debug.Log("Mouse is outside camera viewport");
        }
    }

    /// <summary>
    /// マウスがカメラのビューポート範囲内にあるかを判定
    /// </summary>
    /// <returns>カメラ範囲内にある場合true</returns>
    private bool IsMouseOverCamera()
    {
        Vector3 mouseScreenPos = Input.mousePosition;
        Rect cameraRect = Camera.main.pixelRect;

        return cameraRect.Contains(mouseScreenPos);
    }
}

シーンを再生してゲーム画面内外でマウスポインタを移動させると、ログ出力が変化して判定結果を確認できます。




以上の内容はhttps://bluebirdofoz.hatenablog.com/entry/2025/08/17/234108より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14