viewportをworld座標サイズに変換する
2020/09/07
Unity
2D
Camera
viewport
Unityの2D環境でカメラが映している範囲のworld座標のサイズを取得する方法。
カメラにぴったり収まるオブジェクトを作るときに利用する。
環境
- Unity 2020.1.3f1
実装
/// <summary>
/// カメラのviewportをWorld座標上のサイズに変換する
/// </summary>
/// <param name="camera">対象のカメラ</param>
/// <returns>world座標上のサイズ</returns>
public static Vector2 GetWorldSizeOfViewport(this Camera camera)
{
Vector2 topRight = camera.ViewportToWorldPoint(Vector2.one);
Vector2 bottomLeft = camera.ViewportToWorldPoint(Vector2.zero);
return topRight - bottomLeft;
}
Cameraクラスには元々ViewportToWorldPointメソッド[1]が用意されているのでこれを利用する。 viewportの(0, 0)の位置と(1, 1)の位置のworld座標の差がサイズになる。