void OnGUI()
        {
            if (instance == null)
            {
                EditorWindow sshWindow = GetWindow(typeof(ScreenshotHelperBuildSaveLocationWindow));
                if (sshWindow != null)
                {
                    sshWindow.Close();
                }
                return;
            }

            EditorGUILayout.HelpBox(
                "Set the location to save screenshots when using a build. " +
                "The exact location will change based on the machine the build is running. " +
                "For example the user name will be corrected.",
                MessageType.None);

            string example = instance.BuildSaveLocation();

            EditorGUILayout.HelpBox("Location example: " + example, MessageType.None);

            instance.buildSavePathRoot  = (System.Environment.SpecialFolder)EditorGUILayout.EnumPopup("Root: ", instance.buildSavePathRoot);
            instance.buildSavePathExtra = EditorGUILayout.TextField("Extra directory: ", instance.buildSavePathExtra);
        }
Exemple #2
0
        public override void OnInspectorGUI()
        {
            ScreenshotHelper ssHelper = (ScreenshotHelper)target;

            serializedObject.Update();


            var cameraArrayProp = serializedObject.FindProperty("cameras");

            EditorGUI.BeginChangeCheck();
            EditorGUILayout.PropertyField(
                cameraArrayProp,
                new GUIContent("Cameras (leave empty to autodetect)"), true);

            if (EditorGUI.EndChangeCheck())
            {
                serializedObject.ApplyModifiedProperties();
            }


            RenderTextureToggleAndWarning(ssHelper);

            CameraSolidColorTransparencyWarning(ssHelper);

            MakeSpace(1);

            EditorGUI.BeginChangeCheck();

            MakeSpace(1);
            ssHelper.orientation = (SSHOrientation)EditorGUILayout.EnumPopup(
                "Orientation", ssHelper.orientation);

            if (EditorGUI.EndChangeCheck())
            {
                ssHelper.UpdateDimensions();
            }

            //sizes header
            MakeSpace(1);
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Screen Shot Sizes", EditorStyles.boldLabel);
            EditorGUILayout.EndHorizontal();

            ssHelper.fileNamePrefix =
                EditorGUILayout.TextField("Filename prefix", ssHelper.fileNamePrefix);
            MakeSpace(1);

            SetSizesSubs(ssHelper);

            //add a size
            EditorGUILayout.Space();

            EditorGUI.BeginDisabledGroup(ssHelper.IsTakingShots);
            if (GUILayout.Button(new GUIContent(" Add a size", AddIcon), ButtonHeight))
            {
                ssHelper.shotInfo.Add(new ShotSize(0, 0));
            }

            //ssHelper.didPressEditorScreenshotButton = false; didStartTaking = false;

            if (GUILayout.Button(new GUIContent("Take Shots!", ShutterIcon)))
            {
                EditorApplication.isPlaying             = true;
                ssHelper.didPressEditorScreenshotButton = true;
            }

            //Debug.LogFormat("didPress: {0}  isPlay: {1}", ssHelper.didPressEditorScreenshotButton, EditorApplication.isPlaying);

            if (ssHelper.didPressEditorScreenshotButton && EditorApplication.isPlaying)
            {
                didStartTaking = true;
                ssHelper.didPressEditorScreenshotButton = false;

                ssHelper.OnComplete += () => {
                    //Debug.Log("OnComplete");
                    EditorApplication.isPlaying = false;
                };
                //Debug.Log("Call runtake");
                ssHelper.GetScreenShots();
            }

            if (didStartTaking && !EditorApplication.isPlaying)
            {
                didStartTaking = false;
                ssHelper.didPressEditorScreenshotButton = false;
            }

            MakeSpace(3);

            ssHelper.openFolderWhenDone = EditorGUILayout.ToggleLeft(
                "Open folder when done?",
                ssHelper.openFolderWhenDone);

            EditorGUILayout.HelpBox(
                "In-editor Save location: " + ssHelper.savePath, MessageType.None);

            if (GUILayout.Button(
                    new GUIContent(" Set in-editor save location", FolderIcon), ButtonHeight))
            {
                ssHelper.savePath = GameViewUtils.SelectFileFolder(
                    Directory.GetCurrentDirectory(), "");
                PathChange(ssHelper.savePath);
            }

            MakeSpace(1);

            EditorGUILayout.HelpBox(
                "Build Save location example: " + ssHelper.BuildSaveLocation(), MessageType.None);


            if (GUILayout.Button(
                    new GUIContent(" Set build save location", FolderIcon), ButtonHeight))
            {
                ScreenshotHelperBuildSaveLocationWindow.ShowWindow(ssHelper);
            }


            MakeSpace(2);

            if (GUILayout.Button(new GUIContent(" Save Presets", SaveIcon), ButtonHeight))
            {
                string newConfig = SavePreset(ssHelper);
                if (!string.IsNullOrEmpty(newConfig))
                {
                    ssHelper.configFile = newConfig;
                }
            }

            LoadPresetsButton(ssHelper);

            MakeSpace(2);

            if (GUILayout.Button(new GUIContent(" Load Defaults", OpenIcon), ButtonHeight))
            {
                ssHelper.SetDefaults();
                ssHelper.configFile = "";
            }

            EditorGUI.EndDisabledGroup();

            MakeSpace(1);
        }