【Unity】マウスクリック位置とXZ平面との交点の求め方

XZ平面上のマウスのクリック位置判定でRayを飛ばすほどでもないなーという時の計算方法

var mousePos = Input.mousePosition;
var camera = Camera.main;

// 視錐台上の一点を求める
mousePos.z = 1;
var cameraPlaneMousePos = camera.ScreenToWorldPoint(mousePos);

// カメラからXZ平面までのベクトルを求める
var rayVec = cameraPlaneMousePos - camera.transform.position;
rayVec *= Mathf.Abs(camera.transform.position.y / rayVec.y);

// カメラまでとカメラから平面までのベクトルを足し合わせる
var floorPos = camera.transform.position + rayVec;