【Unity】長さの決まったRay線を、一定の高さから地面(0,0,0)に向けた時、地面の高さに貫通しない地点までの最短方向を求めるには、どのように計算すればよいでしょうか?
現在は以下のコードのように、真下(-transform.up)にRayを飛ばす処理を行っています。
ただし、自分がほしい結果としては、Ray線の長さに合わせて、地面に貫通をしない方向にRayを飛ばし、その地点のRaycastHitの結果を得たいです。
RaycastHit _raycastHit; float _rayRange = 1; LayerMask _layerMask = 0; var ray = new Ray(transform.position, -transform.up); if (Physics.Raycast(ray, out _raycastHit, _rayRange, _layerMask)) { }
図だと、現在左のような状態を、右のように、Rayの長さに合わせて、ちょうど地面に貫通しない点の結果を得たいです。
Rayの方向は、360度全ての方行を対象するのではなく、Rayを飛ばす元オブジェクトの、真下(-transform.up)から前方向(transform.foward)の間のみに限定します。
回答1件
あなたの回答
tips
プレビュー