ニュース

Top  >   21. 物理・Raycast・当たり判定  >   Q, マウスクリックした位置にあるオブジェクトを取得したい

Q, マウスクリックした位置にあるオブジェクトを取得したい

2026/03/19

メインコンテンツへスキップ
< すべてのカテゴリに戻る

A,結論

ScreenPointToRay と Physics.Raycast を使って hit.collider.gameObject を取得します。

この例はInput Systemパッケージを使用します。対象には3D Colliderが必要です。uGUIのUIクリックやCollider2Dの検出は別の仕組みを使います。

サンプルコード

using UnityEngine;
using UnityEngine.InputSystem;

public class ClickRaycastExample : MonoBehaviour
{
    [SerializeField] private Camera targetCamera;

    private void Update()
    {
        var mouse = Mouse.current;
        if (targetCamera == null || mouse == null ||
            !mouse.leftButton.wasPressedThisFrame) return;

        Ray ray = targetCamera.ScreenPointToRay(mouse.position.ReadValue());
        if (Physics.Raycast(ray, out RaycastHit hit))
            Debug.Log($"クリックしたオブジェクト: {hit.collider.gameObject.name}");
    }
}

※ 実機確認が必要な項目は、Editor だけで判断せず、対象デバイスでも必ず動作確認してください。

難易度:Level 2(初心者)
対象プラットフォーム:PC,Visual Studio,Unity
関連キーワード:C#,Ray,Collider,aca

Level 1-2 向けバナーLevel 3-5 向けバナー 1Level 3-5 向けバナー 2