Unity Screen/World 座標変換
ScreenToWorldPoint・WorldToScreenPoint相当の変換。カメラFOV・解像度・位置・回転から計算。
▶このツールについて
Unityでは、画面座標(Screen)とワールド座標(World)の変換がよく必要になります。UI要素の位置をワールド空間に変換してレイキャストに使う、マウス位置から3D空間上の点を求める、逆にワールド座標が画面のどこに映るか確認するなど。Camera.ScreenToWorldPointとWorldToScreenPointがその役割を担います。このツールでは、カメラのFOV・解像度・位置・回転を入力し、Screen座標とWorld座標を相互に変換できます。Unityの挙動をブラウザ上で検証するのに便利です。
カメラ設定
Screen → World
ScreenToWorldPoint 相当。screen.z はカメラからの距離(depth)
World: (0, 0, 0)
World → Screen
WorldToScreenPoint 相当
Screen: (960, 540) / Depth: 10
使い方
カメラのFOV、解像度、位置・回転を入力し、Screen座標またはWorld座標を入力すると相互に変換されます。Unityの
Camera.ScreenToWorldPoint / WorldToScreenPointの挙動をブラウザ上で検証できます。いつ使うか
UI要素をワールド座標に変換したい、マウス位置からレイキャスト先を計算したい、カメラ設定変更時の座標変換を検証したい場合。
使用例
画面中央
(960,540)をワールド座標に変換、ワールド(0,0,10)が画面のどこに映るか確認。補足・Tips
- Screen座標は左下が原点。UIのRectTransformとは座標系が異なります。
- RaycastHit.point から得たワールド座標を画面座標に戻す検証に便利。
- カメラの near/far クリップは変換結果に影響しません。