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座標の差がサイズになる。

© 2019-2022 hassakulab.com, built with Gatsby