protected void GUI_Camera() { Camera prevLastCamera = (Camera)_propLastCamera.objectReferenceValue; EditorGUILayout.PropertyField(_propLastCamera, _guiItemCamera); Camera lastCamera = (Camera)_propLastCamera.objectReferenceValue; // If the user has changed the camera, reset the contributing cameras if (lastCamera != prevLastCamera) { _propContribCameras.arraySize = 0; if (lastCamera == null) { _propUseContribCameras.boolValue = false; } } if (lastCamera != null) { _propUseContribCameras.boolValue = EditorGUILayout.ToggleLeft("Use Contributing Cameras", _propUseContribCameras.boolValue); if (_propUseContribCameras.boolValue) { if (GUILayout.Button("Find Contributing Cameras", EditorStyles.miniButtonRight, GUILayout.ExpandWidth(false))) { bool hasContribCameras = false; if (Utils.HasContributingCameras(lastCamera)) { Camera[] cameras = Utils.FindContributingCameras(lastCamera); if (cameras != null && cameras.Length > 0) { hasContribCameras = true; _propContribCameras.arraySize = cameras.Length; for (int slotIndex = 0; slotIndex < cameras.Length; slotIndex++) { _propContribCameras.GetArrayElementAtIndex(slotIndex).objectReferenceValue = cameras[slotIndex]; } } } if (!hasContribCameras) { _propContribCameras.arraySize = 0; _propUseContribCameras.boolValue = false; } } EditorGUILayout.PropertyField(_propContribCameras, _guiItemContribCamera, true); EditorGUILayout.Space(); } } EditorUtils.EnumAsDropdown("Resolution", _propRenderResolution, CaptureBaseEditor.ResolutionStrings); if (_propRenderResolution.enumValueIndex == (int)CaptureBase.Resolution.Custom) { EditorGUILayout.PropertyField(_propRenderSize, new GUIContent("Size")); _propRenderSize.vector2Value = new Vector2(Mathf.Clamp((int)_propRenderSize.vector2Value.x, 1, NativePlugin.MaxRenderWidth), Mathf.Clamp((int)_propRenderSize.vector2Value.y, 1, NativePlugin.MaxRenderHeight)); } { string currentAA = "None"; if (QualitySettings.antiAliasing > 1) { currentAA = QualitySettings.antiAliasing.ToString() + "x"; } EditorUtils.IntAsDropdown("Anti-aliasing", _propAntiAliasing, new string[] { "Current (" + currentAA + ")", "None", "2x", "4x", "8x" }, new int[] { -1, 1, 2, 4, 8 }); } }
protected void GUI_OutputFilePath() { EditorUtils.EnumAsDropdown("Output Type", _propOutputType, new string[] { "Video File", "Image Sequence", "Named Pipe" }); if (_propOutputType.enumValueIndex == (int)CaptureBase.OutputType.VideoFile || _propOutputType.enumValueIndex == (int)CaptureBase.OutputType.ImageSequence) { bool isImageSequence = (_propOutputType.enumValueIndex == (int)CaptureBase.OutputType.ImageSequence); if (isImageSequence) { EditorUtils.EnumAsDropdown("Format", _propImageSequenceFormat, new string[] { "PNG (uncompressed)" }); GUILayout.Space(8f); } GUILayout.Label("Folder", EditorStyles.boldLabel); EditorGUILayout.PropertyField(_propOutputFolderType, new GUIContent("Folder")); if (_propOutputFolderType.enumValueIndex == (int)CaptureBase.OutputPath.Absolute) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.PropertyField(_propOutputFolderPath, new GUIContent("Path")); if (GUILayout.Button(">", GUILayout.Width(22))) { _propOutputFolderPath.stringValue = EditorUtility.SaveFolderPanel("Select Folder To Store Video Captures", System.IO.Path.GetFullPath(System.IO.Path.Combine(Application.dataPath, "../")), ""); } EditorGUILayout.EndHorizontal(); } else { EditorGUILayout.PropertyField(_propOutputFolderPath, new GUIContent("Subfolder(s)")); } GUILayout.Label("File Name", EditorStyles.boldLabel); if (!isImageSequence) { EditorGUILayout.PropertyField(_propAutoGenerateFileName, new GUIContent("Auto Generate")); if (_propAutoGenerateFileName.boolValue) { EditorGUILayout.PropertyField(_propAutoFileNamePrefix, new GUIContent("Prefix")); EditorGUILayout.PropertyField(_propFileNameExtension, new GUIContent("Extension")); } else { EditorGUILayout.PropertyField(_propForceFileName, new GUIContent("File Name")); } } if (isImageSequence) { EditorGUILayout.PropertyField(_propAutoFileNamePrefix, new GUIContent("Prefix")); EditorGUILayout.PropertyField(_propImageSequenceStartFrame, new GUIContent("Start Frame")); EditorGUILayout.PropertyField(_propImageSequenceZeroDigits, new GUIContent("Zero Digits")); } } else { EditorGUILayout.PropertyField(_propForceFileName, new GUIContent("Pipe Path")); } /*// File path EditorGUILayout.LabelField("File Path", EditorStyles.boldLabel); EditorGUI.indentLevel++; _outputFolderIndex = EditorGUILayout.Popup("Relative to", _outputFolderIndex, _outputFolders); if (_outputFolderIndex == 0 || _outputFolderIndex == 1) { _outputFolderRelative = EditorGUILayout.TextField("SubFolder(s)", _outputFolderRelative); } else { EditorGUILayout.BeginHorizontal(); _outputFolderAbsolute = EditorGUILayout.TextField("Path", _outputFolderAbsolute); if (GUILayout.Button(">", GUILayout.Width(22))) { _outputFolderAbsolute = EditorUtility.SaveFolderPanel("Select Folder To Store Video Captures", System.IO.Path.GetFullPath(System.IO.Path.Combine(Application.dataPath, "../")), ""); EditorUtility.SetDirty(this); } EditorGUILayout.EndHorizontal(); } EditorGUI.indentLevel--;*/ }