public override void OnInspectorGUI() { EditorUtility.SetDirty(target); EditorGUILayout.Space(); GUI.color = script.signatureColor; if (GUILayout.Button("TOGGLE SETTINGS", "toolbarButton", GUILayout.MaxWidth(120), GUILayout.MinWidth(120))) { refreshRequests(); script.foldoutSettings = !script.foldoutSettings; } GUI.color = Color.white; if (script.foldoutSettings) { EditorGUILayout.BeginVertical(EditorStyles.helpBox); EditorGUILayout.LabelField("CAPTURE SETTINGS", EditorStyles.boldLabel); GUI.color = script.signatureColor; script.captureMethod = (ScreenshotCreator.CaptureMethod)EditorGUILayout.EnumPopup("capture method", script.captureMethod); GUI.color = Color.white; if (script.captureMethod == ScreenshotCreator.CaptureMethod.Cutout) { EditorGUILayout.HelpBox("This capture method will take any part of the current Game View and save it pixel by pixel. Not supported in Edit Mode.", MessageType.Info); singleCameraToggle(); GUI.color = Color.white; script.cutoutPosition = EditorGUILayout.Vector2Field("Cutout Position", script.cutoutPosition); script.cutoutSize = EditorGUILayout.Vector2Field("Cutout Size", script.cutoutSize); } else if (script.captureMethod == ScreenshotCreator.CaptureMethod.RenderTexture) { EditorGUILayout.HelpBox("This capture method creates a RenderTexture that captures any Camera's " + "output in a custom resolution. This method also creates the sharpest upscaled images, but it can only use a single Camera.", MessageType.Info); EditorGUILayout.BeginHorizontal(); GUI.color = Color.white; script.renderSizeMultiplier = EditorGUILayout.Slider("Size Multiplyer (float)", script.renderSizeMultiplier, 0.1f, 10f); EditorGUILayout.LabelField(script.getResolution(), EditorStyles.boldLabel, GUILayout.MaxWidth(100)); EditorGUILayout.EndHorizontal(); } else { EditorGUILayout.HelpBox("This capture method creates a screenshot that is upscaled by a rounded number multiplier. ", MessageType.Info); singleCameraToggle(); EditorGUILayout.BeginHorizontal(); GUI.color = Color.white; script.captureSizeMultiplier = EditorGUILayout.IntSlider("Size Multiplyer (int)", script.captureSizeMultiplier, 1, 10); EditorGUILayout.LabelField(script.getResolution(), EditorStyles.boldLabel, GUILayout.MaxWidth(100)); EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndVertical(); EditorGUILayout.Space(); EditorGUILayout.BeginVertical(EditorStyles.helpBox); EditorGUILayout.LabelField("DIRECTORY SETTINGS", EditorStyles.boldLabel); script.customDirectory = EditorGUILayout.TextField("Custom Name", script.customDirectory); applicationPathToggle(); GUI.color = Color.white; EditorGUILayout.SelectableLabel("Directory = " + script.getSaveDirectory(), GUILayout.MaxHeight(16)); EditorGUILayout.EndVertical(); EditorGUILayout.Space(); EditorGUILayout.BeginVertical(EditorStyles.helpBox); EditorGUILayout.LabelField("FILE SETTINGS", EditorStyles.boldLabel); script.customName = EditorGUILayout.TextField("Custom Name", script.customName); fileName(); EditorGUILayout.LabelField("File Name = " + script.getFileName(script.lastCamID)); EditorGUILayout.Space(); fileType(); EditorGUILayout.Space(); EditorGUILayout.EndVertical(); } EditorGUILayout.Space(); GUI.color = script.signatureColor; EditorGUILayout.BeginVertical(EditorStyles.helpBox); GUI.color = Color.white; GUILayout.Label("Cameras:", EditorStyles.boldLabel); for (int i = 0; i < script.list.Count; i++) { ScreenshotCreator.CameraObject c = script.list[i]; GUI.color = Color.white; EditorGUILayout.BeginHorizontal(EditorStyles.helpBox); script.list[i].cam = (GameObject)EditorGUILayout.ObjectField(script.list[i].cam, typeof(GameObject), true); EditorGUI.BeginDisabledGroup(script.list [i].cam == null); script.list[i].hotkey = (ScreenshotCreator.CameraObject.Hotkey)EditorGUILayout.EnumPopup(script.list[i].hotkey, GUILayout.MaxWidth(60)); EditorGUI.EndDisabledGroup(); EditorGUI.BeginDisabledGroup(script.captureMethod == ScreenshotCreator.CaptureMethod.Cutout && !EditorApplication.isPlaying); if (script.list [i].cam != null) { if (GUILayout.Button("USE " + script.list [i].cam.name, new GUIStyle(EditorStyles.miniButtonLeft))) { refreshRequests(); if (script.captureMethod == ScreenshotCreator.CaptureMethod.RenderTexture) { Camera attachedCam = script.list [i].cam.GetComponent <Camera> (); if (attachedCam == null) { script.CaptureScreenshots(i, true); } else { script.CaptureRenderTexture(attachedCam, i); } } else if (script.captureMethod == ScreenshotCreator.CaptureMethod.CaptureScreenshot) { script.CaptureScreenshots(i, false); } else { //script.StartCoroutine(script.CaptureCutout (i)); script.CaptureCutoutVoid(i); } script.lastCam = script.list [script.lastCamID].cam.GetComponent <Camera> (); } } EditorGUI.EndDisabledGroup(); // the delete button if (c.deleteQuestion) { GUI.color = script.signatureColor; if (GUILayout.Button("YES?", new GUIStyle(EditorStyles.miniButtonRight), GUILayout.MaxWidth(45), GUILayout.MaxHeight(14))) { refreshRequests(); script.Delete(i); } } else { GUI.color = (script.signatureColor + Color.white * 2f) / 3f; if (GUILayout.Button("X", new GUIStyle(EditorStyles.miniButtonRight), GUILayout.MaxWidth(45), GUILayout.MaxHeight(14))) { refreshRequests(); script.RequestDelete(i); } } EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndVertical(); EditorGUILayout.Space(); GUI.color = script.signatureColor; if (GUILayout.Button("ADD CAMERA", "toolbarButton", GUILayout.MaxWidth(120), GUILayout.MinWidth(120))) { refreshRequests(); script.Create(); } EditorGUILayout.Space(); }
public override void OnInspectorGUI() { EditorUtility.SetDirty(target); GUI.color = Color.white; EditorGUILayout.BeginVertical(EditorStyles.helpBox); EditorGUI.indentLevel++; script.foldoutSettings = EditorGUILayout.Foldout(script.foldoutSettings, "Settings"); EditorGUI.indentLevel--; if (script.foldoutSettings) { EditorGUILayout.BeginHorizontal(); script.superSize = EditorGUILayout.IntSlider("size multiplier", script.superSize, 1, 16); EditorGUILayout.LabelField(script.getResolution(), EditorStyles.boldLabel, GUILayout.MaxWidth(100)); EditorGUILayout.EndHorizontal(); EditorGUILayout.SelectableLabel("folder: " + System.IO.Directory.GetCurrentDirectory() + @"\Screenshots\"); script.customName = EditorGUILayout.TextField("custom name", script.customName); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("CamName")) { script.includeCamName = !script.includeCamName; } if (GUILayout.Button("Date")) { script.includeDate = !script.includeDate; } if (GUILayout.Button("Resolution")) { script.includeResolution = !script.includeResolution; } script.fileType = (ScreenshotCreator.FileType)EditorGUILayout.EnumPopup(script.fileType); EditorGUILayout.EndHorizontal(); EditorGUILayout.LabelField("file name: " + script.getFileName(script.lastCamID)); EditorGUILayout.Space(); script.captureMethod = (ScreenshotCreator.CaptureMethod)EditorGUILayout.EnumPopup("capture method", script.captureMethod); } EditorGUILayout.EndVertical(); GUILayout.Label("Cameras:", EditorStyles.boldLabel); for (int i = 0; i < script.list.Count; i++) { ScreenshotCreator.CameraObject c = script.list[i]; GUI.color = Color.white; EditorGUILayout.BeginHorizontal(EditorStyles.helpBox); script.list[i].cam = (GameObject)EditorGUILayout.ObjectField(script.list[i].cam, typeof(GameObject), true); EditorGUI.BeginDisabledGroup(script.list [i].cam == null); script.list[i].hotkey = (ScreenshotCreator.CameraObject.Hotkey)EditorGUILayout.EnumPopup(script.list[i].hotkey, GUILayout.MaxWidth(60)); EditorGUI.EndDisabledGroup(); //EditorGUI.BeginDisabledGroup (!EditorApplication.isPlaying); if (script.list [i].cam != null) { if (GUILayout.Button("USE " + script.list [i].cam.name, new GUIStyle(EditorStyles.miniButtonLeft))) { refreshRequests(); if (script.captureMethod == ScreenshotCreator.CaptureMethod.RenderTexture) { Camera attachedCam = script.list [i].cam.GetComponent <Camera> (); if (attachedCam == null) { script.CaptureScreenshots(i, true); } else { script.CaptureRenderTexture(attachedCam, i); } } else if (script.captureMethod == ScreenshotCreator.CaptureMethod.CaptureScreenshot) { script.CaptureScreenshots(i, false); } script.lastCam = script.list [script.lastCamID].cam.GetComponent <Camera> (); } } //EditorGUI.EndDisabledGroup(); // the delete button if (c.deleteQuestion) { GUI.color = Color.red; if (GUILayout.Button("YES?", new GUIStyle(EditorStyles.miniButtonRight), GUILayout.MaxWidth(45), GUILayout.MaxHeight(14))) { refreshRequests(); script.Delete(i); } } else { GUI.color = (Color.red + Color.white * 2f) / 3f; if (GUILayout.Button("X", new GUIStyle(EditorStyles.miniButtonRight), GUILayout.MaxWidth(45), GUILayout.MaxHeight(14))) { refreshRequests(); script.RequestDelete(i); } } EditorGUILayout.EndHorizontal(); } EditorGUILayout.Space(); GUI.color = new Color(0.54f, 0.68f, 0.95f); if (GUILayout.Button("ADD CAMERA", GUILayout.MaxWidth(100), GUILayout.MinWidth(100), GUILayout.MaxHeight(25), GUILayout.MinHeight(25))) { refreshRequests(); script.Create(); } }