「視錐台を理解する」セクションでは、カメラのビュー内の任意の点がワールド空間内の線に対応すると説明しました。その線を数学的に表現すると便利な場合があり、Unity はこれを Ray オブジェクトの形式で提供できます。 Ray は常にビュー内の点に対応するため、Camera クラスは ScreenPointToRay 関数と ViewportPointToRay 関数を提供します。 2 つの違いは、ScreenPointToRay はポイントがピクセル座標として提供されることを期待しているのに対し、ViewportPointToRay は 0..1 の範囲の正規化された座標を取ることです (0 はビューの下または左を表し、1 はビューの上または右を表します)。 。これらの各関数は、原点とその原点からの線の方向を示すベクトルで構成される Ray を返します。レイは、カメラのtransform.positionポイントではなく、クリッピング面に近いところから発生します。
レイキャスティング
カメラからの Ray の最も一般的な使用法は、シーンへのレイキャストを実行することです。レイキャストは、シーン内のコライダーに当たるまで、その原点からレイに沿って架空の「レーザー ビーム」を送信します。その後、オブジェクトと、RaycastHit オブジェクトでヒットしたポイントに関する情報が返されます。これは、画面上の画像に基づいてオブジェクトを見つける非常に便利な方法です。たとえば、マウスの位置にあるオブジェクトは次のコードで決定できます。