Unity UIWidgets 画面サイズにあわせてウィジェットのサイズを変更する

UnityのUIWidgets, 便利ですね。
ただ、Flutterでよく使われるような便利なパッケージが無いのが痛いところ。

FlutterならScreenUtilをインポートして脳死でパーツサイズを指定してマルチデバイス対応できましたが、
UIWidgetsだと自分でちょっとだけコードを書く必要があります。

private Widget _initialPanel()
{
    return new Container(color: Color.white, child: new Column(
        mainAxisSize: MainAxisSize.max,
        mainAxisAlignment: MainAxisAlignment.center,
        children: new List<Widget>
        {
            new MaterialButton(
                minWidth: 300 * MediaQuery.of(context).size.width / 750,
                height: 600 * MediaQuery.of(context).size.height / 1334,
                color: new Color(0xff00BE98),
                onPressed: () =>
                {
                    this.setState(()
                        =>
                    {
                        this.panelState = PanelState.BeforeLogin;
                    });
                }, child: new Text("ボタン", style: new TextStyle(color: Colors.white)))
        }
    ));
}

f:id:rnitta:20200210174713g:plain

height: 600 * MediaQuery.of(context).size.height / 1334,

1334x750 は僕が適当に決定したベースになるスマホの縦横比です。
グローバルな定数にしておくといいかもしれません。(そしてCanvas Scalerに登録しておくといいかもしれません。)
もし、ScreenUtilと同じことがしたければ、この辺のコード を移植すればよいのではないでしょうか。
コード量も多くないし、よく使うのであれば。