====== 082 ScreenToWorldPoint関数の注意点 ======
ScreenToWorldPointはスクリーン座標をワールド座標に変換する便利な関数なのですが落とし穴があります。
例えば、マウスクリックした場所にオブジェクトを移動させたい時には
if ( Input.GetMouseButtonDown(0) )
{
Vector3 mousePos = Input.mousePosition;
Vector3 objPos = Camera.main.ScreenToWorldPoint( mousePos );
}
とすると思いますが上手くいきません。マウスクリックする座標を変更しても、objPosにはいつも同じ値が返ってきしまいます。
これは、元々スクリーン上のマウス座標は2次元でありでZ軸の値を持っていないため(型だけVector3)です。
従ってZ軸を指定してあげる必要があります。
Vector3 mousePos = Input.mousePosition;
mousePos.z = 10.0f;
Vector3 objPos = Camera.main.ScreenToWorldPoint( mousePos );
この様に値を指定してあげると、意図した値が返ってくる様になります。