Unity Ray
PhysicsクラスのRayCast関数を使うと光線を飛ばし、
光線が当たった物体やその位置を調べることができます。
RayCastを使ってユーザーがクリックした画面上の位置からゲーム世界の位置を求める。
例として原点の10m上空から下に向かうRay
Ray ray = new Ray(new Vector3(0,10,0),Vector3.down);
CameraクラスのScreenPointToRay関数を使用すると、、
Ray ray = Camera.main.ScreenPointToRay(clickpos);//Rayを飛ばす
layerMaskは探索するレイヤーを指定できる。
LayerMask.NameToLayer("Ground")
地面と交差した位置を求める
RaycastHit hitInfo;//交差した位置やその物体の情報をRayCast関数によって代入
if(Physics.Raycast(ray,out hitInfo,RayCastMaxDistance,1 << //地面に当たったかを調べるLayerMask.NameToLayer("Ground"))) {//設定すべきビットフィールド
SendMessage("SetDestination",hitInfo.point);