Exemple #1
0
        void OnGUI()
        {
            if (showMenu)
            {
                Vector3 scale;
                float   originalWidth  = 1600f;
                float   originalHeight = 900f;

                scale.x = Screen.width / originalWidth;
                scale.y = Screen.height / originalHeight;
                scale.z = 1;
                Matrix4x4 originalMatrix = GUI.matrix;
                GUI.matrix = Matrix4x4.TRS(new Vector3(0, 0, 0), Quaternion.identity, scale);
                //Layer boxes for Opacity
                GUI.Box(new Rect(menuPos.x - 5, menuPos.y, 310, 470), $"CameraPlus {parentBehaviour.name}");
                GUI.Box(new Rect(menuPos.x - 5, menuPos.y, 310, 470), $"CameraPlus {parentBehaviour.name}");
                GUI.Box(new Rect(menuPos.x - 5, menuPos.y, 310, 470), $"CameraPlus {parentBehaviour.name}");

                CustomEnableStyle = new GUIStyle(GUI.skin.button);
                CustomEnableStyle.normal.background = CustomEnableStyle.active.background;
                CustomEnableStyle.hover.background  = CustomEnableStyle.active.background;
                CustomDisableStyle     = new GUIStyle(GUI.skin.button);
                ProfileStyle           = new GUIStyle(GUI.skin.box);
                ProfileStyle.alignment = UnityEngine.TextAnchor.MiddleLeft;

                if (MenuMode == MenuState.MenuTop)
                {
                    if (GUI.Button(new Rect(menuPos.x + 5, menuPos.y + 25, 30, 30), texture))
                    {
                        parentBehaviour.Config.cameraLock.lockScreen = !parentBehaviour.Config.cameraLock.lockScreen;
                        parentBehaviour.Config.Save();
                        if (this.parentBehaviour.Config.cameraLock.lockScreen)
                        {
                            texture = CustomUtils.LoadTextureFromResources("CameraPlus.Resources.Lock.png");
                        }
                        else
                        {
                            texture = CustomUtils.LoadTextureFromResources("CameraPlus.Resources.UnLock.png");
                        }
                    }
                    GUI.Box(new Rect(menuPos.x + 35, menuPos.y + 25, 115, 30), new GUIContent(parentBehaviour.Config.cameraLock.lockScreen ? "Locked Screen" : "Unlocked Screen"), ProfileStyle);

                    if (GUI.Button(new Rect(menuPos.x + 150, menuPos.y + 25, 30, 30), Cameratexture))
                    {
                        if (!parentBehaviour.Config.cameraLock.lockCamera && !parentBehaviour.Config.cameraLock.dontSaveDrag)
                        {
                            parentBehaviour.Config.cameraLock.lockCamera   = true;
                            parentBehaviour.Config.cameraLock.dontSaveDrag = false;
                            Cameratexture = CustomUtils.LoadTextureFromResources("CameraPlus.Resources.CameraLock.png");
                        }
                        else if (parentBehaviour.Config.cameraLock.lockCamera && !parentBehaviour.Config.cameraLock.dontSaveDrag)
                        {
                            parentBehaviour.Config.cameraLock.lockCamera   = false;
                            parentBehaviour.Config.cameraLock.dontSaveDrag = true;
                            Cameratexture = CustomUtils.LoadTextureFromResources("CameraPlus.Resources.CameraLock.png");
                        }
                        else
                        {
                            parentBehaviour.Config.cameraLock.lockCamera   = false;
                            parentBehaviour.Config.cameraLock.dontSaveDrag = false;
                            Cameratexture = CustomUtils.LoadTextureFromResources("CameraPlus.Resources.CameraUnlock.png");
                        }
                        parentBehaviour.Config.Save();
                    }
                    GUI.Box(new Rect(menuPos.x + 185, menuPos.y + 25, 115, 30), new GUIContent(parentBehaviour.Config.cameraLock.dontSaveDrag ? "ResetDrag Camera" : (parentBehaviour.Config.cameraLock.lockCamera ? "Locked Camera" : "Unlocked Camera")), ProfileStyle);

                    if (GUI.Button(new Rect(menuPos.x + 5, menuPos.y + 60, 145, 60), new GUIContent("Add New Camera")))
                    {
                        lock (Plugin.cameraController.Cameras)
                        {
                            string cameraName = CameraUtilities.GetNextCameraName();
                            Logger.log.Notice($"Adding new config with name {cameraName}.json");
                            CameraUtilities.AddNewCamera(cameraName);
                            CameraUtilities.ReloadCameras();
                            parentBehaviour.CloseContextMenu();
                        }
                    }
                    if (GUI.Button(new Rect(menuPos.x + 150, menuPos.y + 60, 145, 60), new GUIContent("Duplicate\nSelected Camera")))
                    {
                        lock (Plugin.cameraController.Cameras)
                        {
                            string cameraName = CameraUtilities.GetNextCameraName();
                            Logger.log.Notice($"Adding {cameraName}");
                            CameraUtilities.AddNewCamera(cameraName, parentBehaviour.Config);
                            CameraUtilities.ReloadCameras();
                            parentBehaviour.CloseContextMenu();
                        }
                    }
                    if (GUI.Button(new Rect(menuPos.x + 150, menuPos.y + 130, 145, 50), new GUIContent("Remove\nSelected Camera")))
                    {
                        lock (Plugin.cameraController.Cameras)
                        {
                            if (CameraUtilities.RemoveCamera(parentBehaviour))
                            {
                                parentBehaviour._isCameraDestroyed = true;
                                parentBehaviour.CreateScreenRenderTexture();
                                parentBehaviour.CloseContextMenu();
                                Logger.log.Notice("Camera removed!");
                            }
                        }
                    }

                    //First Person, Third Person, 360degree
                    GUI.Box(new Rect(menuPos.x, menuPos.y + 190, 300, 55), "Camera Mode");
                    if (GUI.Button(new Rect(menuPos.x + 5, menuPos.y + 210, 95, 30), new GUIContent("First Person"), !parentBehaviour.Config.thirdPerson ? CustomEnableStyle : CustomDisableStyle))
                    {
                        parentBehaviour.Config.thirdPerson = false;
                        parentBehaviour.Config.cameraExtensions.follow360map = false;
                        parentBehaviour.ThirdPerson    = parentBehaviour.Config.thirdPerson;
                        parentBehaviour.ThirdPersonPos = parentBehaviour.Config.Position;
                        parentBehaviour.ThirdPersonRot = parentBehaviour.Config.Rotation;

                        parentBehaviour.CreateScreenRenderTexture();
                        parentBehaviour.Config.Save();
                    }
                    if (GUI.Button(new Rect(menuPos.x + 105, menuPos.y + 210, 95, 30), new GUIContent("Third Person"), (parentBehaviour.Config.thirdPerson && !parentBehaviour.Config.cameraExtensions.follow360map) ? CustomEnableStyle : CustomDisableStyle))
                    {
                        parentBehaviour.Config.thirdPerson = true;
                        parentBehaviour.Config.cameraExtensions.follow360map = false;
                        parentBehaviour.ThirdPersonPos = parentBehaviour.Config.Position;
                        parentBehaviour.ThirdPersonRot = parentBehaviour.Config.Rotation;

                        parentBehaviour.CreateScreenRenderTexture();
                        parentBehaviour.Config.Save();
                    }
                    if (GUI.Button(new Rect(menuPos.x + 205, menuPos.y + 210, 95, 30), new GUIContent("360 degree"), (parentBehaviour.Config.thirdPerson && parentBehaviour.Config.cameraExtensions.follow360map) ? CustomEnableStyle : CustomDisableStyle))
                    {
                        parentBehaviour.Config.thirdPerson = true;
                        parentBehaviour.Config.cameraExtensions.follow360map = true;
                        parentBehaviour.ThirdPersonPos = parentBehaviour.Config.Position;
                        parentBehaviour.ThirdPersonRot = parentBehaviour.Config.Rotation;

                        parentBehaviour.CreateScreenRenderTexture();
                        parentBehaviour.Config.Save();
                    }

                    if (GUI.Button(new Rect(menuPos.x + 5, menuPos.y + 250, 145, 40), new GUIContent("Display Object")))
                    {
                        MenuMode = MenuState.DisplayObject;
                    }
                    if (GUI.Button(new Rect(menuPos.x + 150, menuPos.y + 250, 145, 40), new GUIContent("Layout")))
                    {
                        MenuMode = MenuState.Layout;
                    }
                    if (GUI.Button(new Rect(menuPos.x + 5, menuPos.y + 295, 145, 40), new GUIContent("Multiplayer")))
                    {
                        MenuMode = MenuState.Multiplayer;
                    }
                    if (GUI.Button(new Rect(menuPos.x + 5, menuPos.y + 340, 145, 40), new GUIContent("Profile Saver")))
                    {
                        MenuMode = MenuState.Profile;
                    }
                    if (GUI.Button(new Rect(menuPos.x + 150, menuPos.y + 340, 145, 40), new GUIContent("MovementScript")))
                    {
                        MenuMode   = MenuState.MovementScript;
                        scriptName = CameraUtilities.MovementScriptList();
                    }
                    if (GUI.Button(new Rect(menuPos.x + 5, menuPos.y + 385, 145, 40), new GUIContent("Setting Converter")))
                    {
                        MenuMode = MenuState.SettingConverter;
                        Camera2ConfigExporter.Init();
                    }
                    if (GUI.Button(new Rect(menuPos.x + 150, menuPos.y + 385, 145, 40), new GUIContent("External linkage")))
                    {
                        MenuMode = MenuState.ExternalLink;
                    }

                    /*
                     * if (GUI.Button(new Rect(menuPos.x, menuPos.y + 345, 300, 30), new GUIContent(parentBehaviour.Config.Orthographics ? "Perspective" : "Orthographics")))
                     * {
                     *  parentBehaviour.Config.Orthographics = !parentBehaviour.Config.Orthographics;
                     *  parentBehaviour.Config.Save();
                     *  parentBehaviour.CloseContextMenu();
                     *  parentBehaviour.CreateScreenRenderTexture();
                     * }
                     */
                    /*
                     * if (GUI.Button(new Rect(menuPos.x, menuPos.y + 385, 300, 30), new GUIContent("Spawn 38 Cameras")))
                     * {
                     *  parentBehaviour.StartCoroutine(CameraUtilities.Spawn38Cameras());
                     *  parentBehaviour.CloseContextMenu();
                     * }*/
                    if (GUI.Button(new Rect(menuPos.x, menuPos.y + 430, 300, 30), new GUIContent("Close Menu")))
                    {
                        parentBehaviour.CloseContextMenu();
                    }
                }
                else if (MenuMode == MenuState.DisplayObject)
                {
                    _menuDisplayObject.DiplayMenu(parentBehaviour, this, menuPos);
                }
                else if (MenuMode == MenuState.Layout)
                {
                    _menuLayout.DiplayMenu(parentBehaviour, this, menuPos);
                }
                else if (MenuMode == MenuState.Multiplayer)
                {
                    _menuMultiplayer.DiplayMenu(parentBehaviour, this, menuPos);
                }
                else if (MenuMode == MenuState.Profile)
                {
                    _menuProfile.DiplayMenu(parentBehaviour, this, menuPos);
                }
                else if (MenuMode == MenuState.MovementScript)
                {
                    _menuMovementScript.DiplayMenu(parentBehaviour, this, menuPos);
                }
                else if (MenuMode == MenuState.SettingConverter)
                {
                    _menuSettingConverter.DiplayMenu(parentBehaviour, this, menuPos);
                }
                else if (MenuMode == MenuState.ExternalLink)
                {
                    _menuExternalLink.DiplayMenu(parentBehaviour, this, menuPos);
                }
                else if (MenuMode == MenuState.ChromaKey)
                {
                    _menuChromakey.DiplayMenu(parentBehaviour, this, menuPos);
                }
                GUI.matrix = originalMatrix;
            }
        }