Exemple #1
0
 private void Update()
 {
     if (this.shouldExit)
     {
         this.DoExitGame();
     }
     else if (this.bridge != null)
     {
         if ((this.oldWidth != ((int)base.position.width)) || (this.oldHeight != ((int)base.position.height)))
         {
             int  num            = (int)Mathf.Clamp(base.position.width, base.minSize.x, 1280f);
             int  num2           = (int)Mathf.Clamp(base.position.height, base.minSize.y, 720f);
             bool fitsInsideRect = true;
             this.remoteViewRect         = GameViewSizes.GetConstrainedRect(new Rect(0f, 0f, (float)num, (float)num2), ScriptableSingleton <GameViewSizes> .instance.currentGroupType, ScriptableSingleton <NScreenManager> .instance.SelectedSizeIndex, out fitsInsideRect);
             this.remoteViewRect.y      += this.ToolBarHeight;
             this.remoteViewRect.height -= this.ToolBarHeight;
             this.bridge.SetResolution((int)this.remoteViewRect.width, (int)this.remoteViewRect.height);
             this.oldWidth  = (int)base.position.width;
             this.oldHeight = (int)base.position.height;
         }
         this.bridge.Update();
         base.Repaint();
     }
     if (this.shouldBuild)
     {
         this.shouldBuild = false;
         NScreenManager.Build();
     }
 }
        public static void ClearResolution()
        {
            if (CustomResolution != null)
            {
                EditorWindow gameView = GetGameView();
                bool         customResolutionActive = gameView && CustomResolutionIndex == (int)gameView.FetchProperty("selectedSizeIndex");

                GameViewSizes.CallMethod("RemoveCustomSize", CustomResolutionIndex);
                CustomResolution = null;

                if (customResolutionActive)
                {
                    gameView.CallMethod("SizeSelectionCallback", Mathf.Clamp(PlayerPrefs.GetInt(PREVIOUS_RESOLUTION_PREF), 0, (int)GameViewSizes.CallMethod("GetTotalCount") - 1), null);

                    ZoomOutGameView();
                    RefreshMockups();
                }
            }
        }
        public static void SetResolution(int width, int height, bool aspectRatioMode)
        {
            EditorWindow gameView = GetGameView();

            if (!gameView)
            {
#if UNITY_2019_3_OR_NEWER
                // On 2019.3 and later, we can resize canvases even when there is no open Game window. On earlier versions, unfortunately it is not possible
                if (!NotchSolutionUtilityEditor.UnityDeviceSimulatorActive)
                {
                    SceneView sceneView = SceneView.lastActiveSceneView ?? SceneView.currentDrawingSceneView;
                    if (sceneView)
                    {
                        sceneView.CallMethod("SetMainPlayModeViewSize", new Vector2(width, height));
                        RefreshMockups();
                    }
                }
#endif

                return;
            }

            object customResolution = CustomResolution;
            if (customResolution != null)
            {
                bool isModified = false;

                if ((customResolution.FetchProperty("sizeType").Equals(AspectRatioMode)) != aspectRatioMode)
                {
                    customResolution.ModifyProperty("sizeType", aspectRatioMode ? AspectRatioMode : FixedResolutionMode);
                    isModified = true;
                }

                if ((int)customResolution.FetchProperty("width") != width)
                {
                    customResolution.ModifyProperty("width", width);
                    isModified = true;
                }

                if ((int)customResolution.FetchProperty("height") != height)
                {
                    customResolution.ModifyProperty("height", height);
                    isModified = true;
                }

                if (!isModified)
                {
                    return;
                }
                else if (CustomResolutionIndex == (int)gameView.FetchProperty("selectedSizeIndex"))
                {
                    ZoomOutGameView();
                    RefreshMockups();

                    return;
                }
            }
            else
            {
                CustomResolution = customResolution = GetType("GameViewSize").CreateInstance(aspectRatioMode ? AspectRatioMode : FixedResolutionMode, width, height, TEMPORARY_RESOLUTION_LABEL);
                GameViewSizes.CallMethod("AddCustomSize", customResolution);
            }

            PlayerPrefs.SetInt(PREVIOUS_RESOLUTION_PREF, (int)gameView.FetchProperty("selectedSizeIndex"));
            gameView.CallMethod("SizeSelectionCallback", CustomResolutionIndex, null);

            ZoomOutGameView();
            RefreshMockups();
        }