Unityでの子オブジェクトのRaycast衝突検知方法


子オブジェクトのRaycast衝突検知を行うためには、以下の手順を実行します。

  1. Raycastを発射するオブジェクトを作成します。これは通常、カメラやプレイヤーキャラクターなど、Raycastを発射したいオブジェクトです。

  2. Raycastを発射するオブジェクトにスクリプトをアタッチします。スクリプトは、Raycastを発射し、衝突したオブジェクトを検出するためのコードを含んでいます。

以下の例では、カメラからRaycastを発射し、衝突した子オブジェクトを検出する方法を示します。

using UnityEngine;
public class RaycastExample : MonoBehaviour
{
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;
            if (Physics.Raycast(ray, out hit))
            {
                // 衝突したオブジェクトが子オブジェクトである場合のみ処理を実行する
                if (hit.transform.IsChildOf(transform))
                {
                    // 衝突した子オブジェクトに対する処理をここに記述する
                    Debug.Log("衝突した子オブジェクト: " + hit.transform.name);
                }
            }
        }
    }
}

このスクリプトでは、マウスの左クリックが押された時にカメラからRaycastを発射し、衝突したオブジェクトが子オブジェクトである場合に処理を実行します。衝突した子オブジェクトの名前はデバッグログに表示されます。

上記のコード例を参考にしながら、自身のプロジェクトに適用して子オブジェクトのRaycast衝突検知を実装してみてください。