RayCast
Unityの機能
画面をクリックしたら、カメラから見えない光線を出す。
Collisionにあたったら検出する。
決められた距離を進み、線の間にあるcolliderをいくつでも検出できる(貫通)
使いみち
死体をクリックして漁る
銃や光線で敵を攻撃する
RayCasting is Process
RayCasting
https://gyazo.com/5d5c547b3e1f1d7bd9ab10435df6ac01
カメラからのRay
https://gyazo.com/507f302ce054ad27c30a151969f98bc4
カメラオブジェクトにフォーカスすると、
Origin
Viewport
がある。
カメラからのRayCast は、Viewportのクリックした点と原点を結んだ延長線上に照射される
Debug.DrawRay
RayCastを表示するデバッグメソッド
可視化するので開発時に見やすい。
※大抵の可視化はDebugクラスからできる
Camera.ScreenPointToRay
Vector3 -> Ray
指定したビューポート上の座標とカメラを結んだ線をRayとして返す
Physics.RayCast
code: .fs
member this.moveToCursor() =
let ray =
Camera.main.ScreenPointToRay(Input.mousePosition)
if Physics.Raycast(ray, &this.hit) then
// this.agent.destination <- this.hit.transform.position // ヒットした相手のtransform
this.agent.destination <- this.hit.point
hit.transformとしてしまうと、Terrain の原点に行くので明後日の方向へ移動する
hit.pointがRayがあたった位置