そういうのがいいブログ

アプリ個人開発 まるブログ

アプリ開発覚え書き

【Unity】Android端末8404台を調査 端末のタブレット判定の縦横比閾値を1.61以下にした話

はじめに

端末によって画面の縦横比が異なるため
スマートフォンの前提で開発を行っていると
タブレットの画面比率ではUIが大きく乱れてしまいます。

今回は現実の端末の縦横比ボリュームゾーンの把握を行い、
どの縦横比率からタブレットと判定するかを決定しました。

結論からいくと画面縦横比1.61以下タブレットとして検出し
UIの調整処理をかけることにしました!

調査方法

GooglePlayConsoleから
→「デバイスカタログ」
→「デバイスリストをエクスポート」より端末の縦横比の情報を得ました。

※画像は8841件と書いてありますが省いたデータもありますので調査対象は8404台です。

 

集計結果

以下が集計結果になります。
・縦横比としては1.00から2.99まで存在している
・縦横比1.60のデバイス数が一番多い
・縦横比1.60の次に存在するのは1.67
 (タブレットの縦横比はおよそ1.60らしい(ChatGPT情報))
※縦横比の小数点第三位を四捨五入しています。

・グラフ(文字が小さくすいません!)
縦軸:デバイス
横軸:縦横比率

閾値の決定

縦横比1.60のデバイス数が多いことから
この縦横比を閾値としてUI調整をしていけば良さそうです。

今回小数点第三位を四捨五入した関係で
閾値を1.60以下とすると該当しない端末が発生する恐れがあるため
1.61以下を閾値として設定することにしました。

スクリプトとしては以下になります。

using UnityEngine;

public class Test : MonoBehaviour
{
    void Start()
    {
        // 縦横比を計算する
        float aspectRatio = (float)Screen.height / Screen.width;

        Debug.Log("aspectRatio = " + aspectRatio);
        
        // 縦横比が1.61以下であるかどうかを確認する
        if (aspectRatio <= 1.61f)
        {
            Debug.Log("タブレット端末です");
        }
       
    }
}

おわりに

今回は縦持ちの前提となります。
横持ちの画面設定ですと閾値を逆数にするか横縦比にするかのどちらかが必要になります。
ご注意ください。

marumaro7.hatenablog.com