この記事でのバージョン
Unity 2018.2.14f1
はじめに
UnityのGameViewは左上からプルダウン比率やサイズを変更や設定を行う事が出来ます。
今回はこれをプログラムから、つまりエディタ拡張で操作したい場合の話です。
GameViewSizeHelper
残念ながらGameViewのサイズを直接操作するAPIはありませんが、
GameViewSizeHelperという「ScriptからGameViewSizeを作成、また設定するヘルパークラス」が
公開されているのでコレを代わりにご紹介します
実際に使う場合は以下のような感じで、GameViewの設定の追加、削除、確認、変更が出来ます。
なお、現在のプラットフォームとGameViewSizeGroupTypeは同じにする必要があります。
using UnityEditor; using Kyusyukeigo.Helper;//GameViewSizeHelperを使うために必要 public static class GameViewSizeTest{ //GameViewの設定を追加 [MenuItem("GameViewSize/Add")] private static void AddGameViewSize(){ GameViewSizeHelper.AddCustomSize(GameViewSizeGroupType.Standalone, GameViewSizeHelper.GameViewSizeType.FixedResolution, 300, 600, "300 * 600"); } //GameViewの設定を削除 [MenuItem("GameViewSize/Remove")] private static void RemoveGameViewSize() { GameViewSizeHelper.RemoveCustomSize(GameViewSizeGroupType.Standalone, GameViewSizeHelper.GameViewSizeType.FixedResolution, 300, 600, "300 * 600"); } //GameViewの設定を変更 [MenuItem("GameViewSize/Change")] private static void ChangeGameViewSize() { //既に設定済みか確認し、設定されていなければ追加 if(!GameViewSizeHelper.Contains(GameViewSizeGroupType.Standalone, GameViewSizeHelper.GameViewSizeType.FixedResolution, 300, 600, "300 * 600")){ AddGameViewSize(); } GameViewSizeHelper.ChangeGameViewSize(GameViewSizeGroupType.Standalone, GameViewSizeHelper.GameViewSizeType.FixedResolution, 300, 600, "300 * 600"); } }
引数の詳細についてはGitHubを参照の事。
これを使えば、一括で各端末の解像度の追加や削除が簡単に行えるようになります。
GameViewSizeChanger
GameViewSizeHelperを使ったGameViewSizeChangerという
GameViewを色々な端末のサイズに変更できるエディタ拡張
がかなり便利そうだったので、ついでにこれもご紹介。
------------追記------------
Unity2019.3以降なら、同系統のUnity公式の機能Device Simulatorが使えます。
------------追記おわり------------
使い方は簡単、Cloneかdownloadした後、
GameViewSizeChanger.unitypackageを実行し、プロジェクトに追加するだけ。
あとはWindow -> GameViewSizeChangerでウィンドウを開けば、
好きな端末のサイズを選べるようになります。
横画面にも対応してますし、なんとiPhoneXのSafeAreaも対応しています。
(ただ、黒スキンだとちょっと見にくい)
また、SafeArea部分はGUI.DrawTextureで直接描画しているため、
シーンに余計なオブジェクトが追加されているわけではありません。
なお、表示する端末の追加や削除をしたい場合はGameViewSizeChanger.csにある
applyersに追加するものを変更すればOKです。