UnityでのRaycastHitの位置の取得方法


方法1: RaycastHitのpointプロパティを使用する方法 Raycastを実行した後、RaycastHit構造体のpointプロパティを使用して衝突した位置を取得することができます。

RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
    Vector3 hitPoint = hit.point;
    Debug.Log("衝突位置: " + hitPoint);
}

方法2: RaycastHitのtransformプロパティを使用する方法 RaycastHit構造体のtransformプロパティを使用すると、衝突したGameObjectのTransformコンポーネントを取得することができます。その後、Transformのpositionプロパティを使用して位置を取得します。

RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
    Transform hitTransform = hit.transform;
    Vector3 hitPosition = hitTransform.position;
    Debug.Log("衝突位置: " + hitPosition);
}

方法3: RaycastHitのcolliderプロパティを使用する方法 RaycastHit構造体のcolliderプロパティを使用すると、衝突したGameObjectのColliderコンポーネントを取得することができます。その後、Colliderのboundsやcenterプロパティを使用して位置を計算することができます。

RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
    Collider hitCollider = hit.collider;
    Vector3 hitPosition = hitCollider.bounds.center;
    Debug.Log("衝突位置: " + hitPosition);
}

これらの方法を使用することで、Raycastが衝突した位置を取得することができます。具体的な使用方法はゲームの要件やシナリオによって異なる場合がありますので、適宜選択してください。