Project Unknown's Blog

Peojct.Unknownと言う名前で細々とアプリ開発をやってるメンバーのブログです。

Unity2d スクリーン座標をワールド座標に変換する

ゆう@あんのうんです。

 

標題の通り、Unityでスクリーン座標からワールド座標を取得する方法を記載します。

まずは、マウスポイントされた座標をワールド座標に変換するSampleコードを示します。

```
Vector2 pos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
```

# ワールド座標

Unityでは画面の位置と、シーンの中の位置は必ずしも一致していません。
Unityでは、シーンの中に無限に広がる空間を持っており、そこにSpriteを配置しています。
この無限空間の座標をワールド座標と呼びます。


# スクリーン座標

スクリーン座標は、ワールド座標の中から、画面上の左上から距離を測った距離を指します。


# Unityでマウスポイント(タップ)座標を取るには

マウスポイント、タップ座標はスクリーン上の座標ですから、PGM上で処理するには、ワールド座標に変換してから処理を行わないと行けません。

これを実現するのが、Cameraオブジェクトです。
Sampleに示した、

```
Camera.main
```

は、メインカメラオブジェクトです。
このCamera.mainに属している、ScreenToWorldメソッドを呼び出すことで、Main Cameraのスクリーン座標をワールド座標に変換することが出来ます。

変換したワールド座標はVectore2オブジェクトとして返却されます。