(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発したゲームです!

    

GameViewの設定をプログラムから作成、また設定するヘルパークラスと色々な端末のサイズに変更できるエディタ拡張【Unity】【エディタ拡張】


このエントリーをはてなブックマークに追加



この記事でのバージョン
Unity 2018.2.14f1


はじめに

UnityのGameViewは左上からプルダウン比率やサイズを変更や設定を行う事が出来ます。


f:id:kan_kikuchi:20181104175418j:plain


今回はこれをプログラムから、つまりエディタ拡張で操作したい場合の話です。


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");
  }

}

f:id:kan_kikuchi:20181105083608g:plain


引数の詳細についてはGitHubを参照の事。


f:id:kan_kikuchi:20181105082358j:plain
GitHub - anchan828/unity-GameViewSizeHelper: ScriptからGameViewSizeを作成、また設定するヘルパークラス


これを使えば、一括で各端末の解像度の追加や削除が簡単に行えるようになります。



GameViewSizeChanger

GameViewSizeHelperを使ったGameViewSizeChangerという

GameViewを色々な端末のサイズに変更できるエディタ拡張

がかなり便利そうだったので、ついでにこれもご紹介。


f:id:kan_kikuchi:20181105115817g:plain


------------追記------------


Unity2019.3以降なら、同系統のUnity公式の機能Device Simulatorが使えます。

f:id:kan_kikuchi:20191202121716g:plain


------------追記おわり------------


使い方は簡単、Cloneかdownloadした後、


f:id:kan_kikuchi:20181105090945j:plain


GameViewSizeChanger.unitypackageを実行し、プロジェクトに追加するだけ。


f:id:kan_kikuchi:20181105091000j:plain


あとはWindow -> GameViewSizeChangerでウィンドウを開けば、


f:id:kan_kikuchi:20181105085803j:plain


好きな端末のサイズを選べるようになります。

横画面にも対応してますし、なんとiPhoneXのSafeAreaも対応しています。

(ただ、黒スキンだとちょっと見にくい)


f:id:kan_kikuchi:20181105091051g:plain


また、SafeArea部分はGUI.DrawTextureで直接描画しているため、

シーンに余計なオブジェクトが追加されているわけではありません。


f:id:kan_kikuchi:20181105090416j:plain


なお、表示する端末の追加や削除をしたい場合はGameViewSizeChanger.csにある


f:id:kan_kikuchi:20181105085910j:plain


applyersに追加するものを変更すればOKです。


f:id:kan_kikuchi:20181105121432j:plain
f:id:kan_kikuchi:20181105121444j:plain