mousePositionで得られたマウスポインタの位置をシーン内で利用するためには、スクリーン座標として取り出した位置を、シーン内の3次元空間の位置に変換しなければいけません。
シーン内の3次元空間は「
ワールド座標」と呼ばれます。表示されているシーンは、「どこから見たものなのか」によって表示される場所が違います。ですから、スクリーン座標をワールド座標に変換するためには、「どのカメラから見たシーンなのか」を考えて処理しないといけません。
カメラは、
Cameraというクラスとして用意されています。Main Cameraは、
Camera内の「
main」というプロパティにインスタンスが用意されています。この中の「
ScreenToWordlPoint」というメソッドを使うことで、そのカメラから見た3次元空間内のワールド座標に変換することができます。
Vector3 変数 = Camera.main.ScreenToWorldPoint( 変換するVector3 );
mousePositionから得られた
Vector3を引数にして呼び出すと、Main Cameraから見たワールド座標に変換されます。このとき重要になるのが、スクリーン座標の
Vector3の「
z」値です。
mousePositionの値は、スクリーン座標ですからxとyの値しか設定されていません。zは、ワールド座標に変換した時の「カメラからの距離」として使われます。3次元空間は奥行きがありますから、2次元の座標から変換する際には「どれぐらい離れているか」という第3の値が必要なのです。
下に、利用例を挙げておきましょう。シーン内をクリックすると、その地点にCubeが移動します。
Input.mousePositionの値を取得し、zの値を適当に設定してから
ScreenToWorldPointで座標変換する。そして得られた
Vector3にCubeの
positionを変更すれば、「クリック地点に移動」が実現できます。