コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】GameViewSizeHelper で Game ビューの解像度を変更した後に UI の描画位置を更新する方法

はじめに

「GameViewSizeHelper」を使用すると、Game ビューの解像度を変更できますが

f:id:baba_s:20190526202807g:plain

GameViewSizeHelper.ChangeGameViewSize を呼び出すだけだと
Game ビューの解像度は変化しますが、
Canvas 内の UI オブジェクトの描画位置は更新されません

対応方法

GameViewSizeHelper.ChangeGameViewSize
(
    groupType: GameViewSizeGroupType.Standalone,
    type: GameViewSizeHelper.GameViewSizeType.AspectRatio,
    width: width,
    height: height,
    baseText: string.Empty
);

EditorApplication.QueuePlayerLoopUpdate(); // ★

上記のように GameViewSizeHelper.ChangeGameViewSize を呼び出した後に
EditorApplication.QueuePlayerLoopUpdate を実行することで

f:id:baba_s:20190526202640g:plain

Canvas 内の UI オブジェクトの描画位置が更新されるようになります

参考サイト様

関連記事