Unityで解像度に合わせて画面のサイズを自動調整する

はじめに

ゆう@あんのうんです。 久々にUnity絡みのお話です。

解像度に合わせて画面のサイズを自動調整する

今回は、様々な端末が出てきている中、それぞれの解像度に合わせたSpriteとかの表示サイズを自動調整するやり方です。 カメラに以下を仕込む事で実現できます。

void Awake() {

    // 開発している画面を元に縦横比取得 (縦画面) iPhone6, 6sサイズ
    float developAspect = 750.0f / 1334.0f;
    // 横画面で開発している場合は以下の用に切り替えます
    float developAspect = 1334.0f / 750.0f;
    
    // 実機のサイズを取得して、縦横比取得
    float deviceAspect = (float)Screen.width / (float)Screen.height;

    // 実機と開発画面との対比
    float scale = deviceAspect / developAspect;

    Camera mainCamera = Camera.main;

    // カメラに設定していたorthographicSizeを実機との対比でスケール
    float deviceSize = mainCamera.orthographicSize;
    // scaleの逆数
    float deviceScale = 1.0f / scale;
    // orthographicSizeを計算し直す
    mainCamera.orthographicSize = deviceSize * deviceScale;

}