ニュース

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

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

2026/03/19

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

A,結論

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

原因 / 背景

  • 物理挙動は Rigidbody、Collider、Is Trigger、Movement Type の組み合わせで大きく変わります。

実装 / 手順

  1. ScreenPointToRay と Physics.Raycast を使って hit.collider.gameObject を取得します。
  2. Rigidbody、Collider、Is Trigger、Movement Type、FixedUpdate 周りの設定を確認してください。

サンプルコード

using UnityEngine;

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

    private void Update()
    {
        if (targetCamera == null || !Input.GetMouseButtonDown(0)) return;

        Ray ray = targetCamera.ScreenPointToRay(Input.mousePosition);
        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 向けバナー