protected void ResizeImple() { var groupType = GameViewSizeHelper.GetCurrentGameViewSizeGroupType(); var gameViewSize = new GameViewSizeHelper.GameViewSize(); gameViewSize.type = GameViewSizeHelper.GameViewSizeType.FixedResolution; gameViewSize.width = Window.Orientation == Orientation.Portrait ? Width : Height; gameViewSize.height = Window.Orientation == Orientation.Portrait ? Height : Width; gameViewSize.baseText = Label; if (!GameViewSizeHelper.Contains(groupType, gameViewSize)) { GameViewSizeHelper.AddCustomSize(groupType, gameViewSize); } GameViewSizeHelper.ChangeGameViewSize(groupType, gameViewSize); Save.Set <string>(GameViewSizeChanger.Key_GameViewSizeChanger_LastLabel, Label); // HACK: 2フレーム待たないとSnapZoomが動作しないケースがある EditorApplication.delayCall += () => { EditorApplication.delayCall += () => { var flag = System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance; var assembly = typeof(Editor).Assembly; var type = assembly.GetType("UnityEditor.GameView"); var gameView = EditorWindow.GetWindow(type, false, "Game", false); var minScaleProperty = type.GetProperty("minScale", flag); float minScale = (float)minScaleProperty.GetValue(gameView, null); type.GetMethod("SnapZoom", flag, null, new System.Type[] { typeof(float) }, null).Invoke(gameView, new object[] { minScale }); gameView.Repaint(); Window.Focus(); }; }; }
GameViewSizeHelper.GameViewSize Convert() { var gameViewSize = new GameViewSizeHelper.GameViewSize(); gameViewSize.type = GameViewSizeHelper.GameViewSizeType.FixedResolution; gameViewSize.baseText = ToText(); bool isPortrait = orientation == Orientation.Portrait; int w = isPortrait ? Width : Height; int h = isPortrait ? Height : Width; gameViewSize.width = w; gameViewSize.height = h; return(gameViewSize); }
static void Init() { var wide = new GameViewSizeHelper.GameViewSize { type = GameViewSizeHelper.GameViewSizeType.FixedResolution, width = 2436, height = 1125, baseText = "iPhone X/XS Landscape" }; var tall = new GameViewSizeHelper.GameViewSize { type = GameViewSizeHelper.GameViewSizeType.FixedResolution, width = 1125, height = 2436, baseText = "iPhone X/XS Portrait" }; GameViewSizeHelper.AddCustomSize(GameViewSizeGroupType.Standalone, wide); GameViewSizeHelper.AddCustomSize(GameViewSizeGroupType.Standalone, tall); GameViewSizeHelper.AddCustomSize(GameViewSizeGroupType.Android, wide); GameViewSizeHelper.AddCustomSize(GameViewSizeGroupType.Android, tall); }
private bool GameViewSizeEqual(GameViewSizeHelper.GameViewSize a, GameViewSizeHelper.GameViewSize b) { return(a.baseText == b.baseText && a.width == b.width && a.height == b.height && a.type == b.type); }