渋谷ほととぎす通信

新しいこと、枯れたこと問わず大庭が興味を持ったものを調査、生活の効率を求める完全趣味の技術ブログ

Unity 板ポリを比率を変えずにスクリーンサイズにフィットさせる


f:id:esakun:20190521024330p:plain:w450

  • カメラ : 位置(0,0,-5)
  • 板ポリ(board) : 位置(0, 0, 0) scale(1, 1, 1)

板ポリをスクリーンに縦横比率を変えずにフィットさせるサンプルです。

// 指定サイズの比率
float targetRatio= targetWidth / targetHeight;

// 画面比率
float screenRatio = (float) Screen.width / (float) Screen.height;

//  Camera.orthographicSizeは高さの半分なので、2倍して高さを算出
var height = _camera.orthographicSize * 2f;
float width = 0;
if (screenRatio > targetRatio)
{
    // 画面の方が指定サイズより横長なので、指定サイズの幅を画面幅にフィットさせる
    width = screenRatio * height;
    height = width / targetRatio;
}
else
{
    // 画面の方が縦長なので縦を画面の高さにフィットさせる
    width = height * targetRatio;
}

board.localScale = new Vector3(width, height, 1f);

f:id:esakun:20190521025552p:plain:w450

f:id:esakun:20190521025704p:plain:w450
するとこのように、めでたくUnityちゃんがスクリーンにフィットするようになりました。

以上