コード例 #1
0
 private void OnGUI()
 {
     if (audioCapture.status == CaptureStatus.STARTED)
     {
         if (GUI.Button(new Rect(10, Screen.height - 60, 150, 50), "Stop Capture"))
         {
             audioCapture.StopCapture();
         }
         if (GUI.Button(new Rect(170, Screen.height - 60, 150, 50), "Cancel Capture"))
         {
             audioCapture.CancelCapture();
         }
     }
     else
     {
         if (GUI.Button(new Rect(10, Screen.height - 60, 150, 50), "Start Capture"))
         {
             audioCapture.StartCapture();
         }
     }
     if (GUI.Button(new Rect(Screen.width - 160, Screen.height - 60, 150, 50), "Browse"))
     {
         // Open video save directory
         Utils.BrowseFolder(audioCapture.saveFolder);
     }
 }
コード例 #2
0
        private void OnGUI()
        {
            if (GUI.Button(new Rect(Screen.width - 160, Screen.height - 60, 150, 50), "Browse"))
            {
                // Open video save directory
                Utils.BrowseFolder(videoCaptureManager.saveFolder);
            }
            bool stopped = false;
            bool pending = false;

            // check if still processing
            foreach (VideoCapture videoCapture in videoCaptureManager.videoCaptures)
            {
                if (videoCapture.status == CaptureStatus.STOPPED)
                {
                    stopped = true;
                    break;
                }
                if (videoCapture.status == CaptureStatus.PENDING)
                {
                    pending = true;
                    break;
                }
            }
            if (stopped)
            {
                if (GUI.Button(new Rect(10, Screen.height - 60, 150, 50), "Encoding"))
                {
                    // Waiting processing end
                }
                return;
            }
            if (pending)
            {
                if (GUI.Button(new Rect(10, Screen.height - 60, 150, 50), "Muxing"))
                {
                    // Waiting processing end
                }
                return;
            }
            if (videoCaptureManager.captureStarted)
            {
                if (GUI.Button(new Rect(10, Screen.height - 60, 150, 50), "Stop Capture"))
                {
                    videoCaptureManager.StopCapture();
                }
                if (GUI.Button(new Rect(170, Screen.height - 60, 150, 50), "Cancel Capture"))
                {
                    videoCaptureManager.CancelCapture();
                }
            }
            else
            {
                if (GUI.Button(new Rect(10, Screen.height - 60, 150, 50), "Start Capture"))
                {
                    videoCaptureManager.StartCapture();
                }
            }
        }
コード例 #3
0
ファイル: ScreenShotGUI.cs プロジェクト: tcdanielh/tilt-brush
 private void OnGUI()
 {
     if (GUI.Button(new Rect(10, Screen.height - 60, 150, 50), "Take Screenshot"))
     {
         screenShot.StartCapture();
     }
     if (GUI.Button(new Rect(Screen.width - 160, Screen.height - 60, 150, 50), "Browse"))
     {
         // Open image save directory
         Utils.BrowseFolder(screenShot.saveFolder);
     }
 }
コード例 #4
0
        private void OnGUI()
        {
            if (
                sequenceCapture.status == CaptureStatus.READY)
            {
                if (GUI.Button(new Rect(10, Screen.height - 60, 150, 50), "Start Capture"))
                {
                    sequenceCapture.StartCapture();
                }
            }
            else if (sequenceCapture.status == CaptureStatus.STARTED)
            {
                if (GUI.Button(new Rect(10, Screen.height - 60, 150, 50), "Stop Capture"))
                {
                    sequenceCapture.StopCapture();
                }

                if (GUI.Button(new Rect(170, Screen.height - 60, 150, 50), "Cancel Capture"))
                {
                    sequenceCapture.CancelCapture();
                }
            }
            else if (sequenceCapture.status == CaptureStatus.PENDING)
            {
                if (GUI.Button(new Rect(10, Screen.height - 60, 150, 50), "Muxing"))
                {
                    // Waiting processing end
                }
            }
            else if (sequenceCapture.status == CaptureStatus.STOPPED)
            {
                if (GUI.Button(new Rect(10, Screen.height - 60, 150, 50), "Encoding"))
                {
                    // Waiting processing end
                }
            }
            if (GUI.Button(new Rect(Screen.width - 160, Screen.height - 60, 150, 50), "Browse"))
            {
                // Open video save directory
                Utils.BrowseFolder(sequenceCapture.saveFolder);
            }
        }
コード例 #5
0
        public override void OnInspectorGUI()
        {
            // Capture Control Section
            GUILayout.Label("Capture Control", EditorStyles.boldLabel);

            audioCapture.startOnAwake = EditorGUILayout.Toggle("Start On Awake", audioCapture.startOnAwake);
            if (audioCapture.startOnAwake)
            {
                audioCapture.captureTime      = EditorGUILayout.FloatField("Capture Duration (Sec)", audioCapture.captureTime);
                audioCapture.quitAfterCapture = EditorGUILayout.Toggle("Quit After Capture", audioCapture.quitAfterCapture);
            }

            // Capture Options Section
            GUILayout.Label("Capture Options", EditorStyles.boldLabel);

            audioCapture.saveFolder        = EditorGUILayout.TextField("Save Folder", audioCapture.saveFolder);
            audioCapture.captureMicrophone = EditorGUILayout.Toggle("Capture Microphone", audioCapture.captureMicrophone);
            if (audioCapture.captureMicrophone)
            {
                audioCapture.deviceIndex = EditorGUILayout.IntField("Device Index", audioCapture.deviceIndex);
            }

            //// Tools Section
            //GUILayout.Label("Tools", EditorStyles.boldLabel);
            GUILayout.Space(10);

            if (GUILayout.Button("Browse"))
            {
                // Open video save directory
                Utils.BrowseFolder(audioCapture.saveFolder);
            }

            GUILayout.Space(10);

            if (GUI.changed)
            {
                EditorUtility.SetDirty(target);
                EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene());
            }
        }
コード例 #6
0
 private void OnGUI()
 {
     if (
         imageCapture.status == CaptureStatus.READY)
     {
         if (GUI.Button(new Rect(10, Screen.height - 60, 150, 50), "Start Capture"))
         {
             imageCapture.StartCapture();
         }
     }
     else if (imageCapture.status == CaptureStatus.STARTED)
     {
         if (GUI.Button(new Rect(10, Screen.height - 60, 150, 50), "Encoding"))
         {
             // Waiting processing end
         }
     }
     if (GUI.Button(new Rect(Screen.width - 160, Screen.height - 60, 150, 50), "Browse"))
     {
         // Open video save directory
         Utils.BrowseFolder(imageCapture.saveFolder);
     }
 }
コード例 #7
0
        public override void OnInspectorGUI()
        {
            serializedObject.Update();

            // Capture Cameras
            GUILayout.Label("Capture Cameras", EditorStyles.boldLabel);

            EditorGUILayout.PropertyField(regularCamera, new GUIContent("Regular Camera"), true);
            EditorGUILayout.PropertyField(stereoCamera, new GUIContent("Stereo Camera"), true);

            // Capture Control Section
            GUILayout.Label("Capture Controls", EditorStyles.boldLabel);

            videoCapture.startOnAwake = EditorGUILayout.Toggle("Start On Awake", videoCapture.startOnAwake);
            if (videoCapture.startOnAwake)
            {
                videoCapture.captureTime      = EditorGUILayout.FloatField("Capture Duration (Sec)", videoCapture.captureTime);
                videoCapture.quitAfterCapture = EditorGUILayout.Toggle("Quit After Capture", videoCapture.quitAfterCapture);
            }

            // Capture Options Section
            GUILayout.Label("Capture Options", EditorStyles.boldLabel);

            videoCapture.captureSource = (CaptureSource)EditorGUILayout.EnumPopup("Capture Source", videoCapture.captureSource);

            if (videoCapture.captureSource == CaptureSource.RENDERTEXTURE)
            {
                EditorGUILayout.PropertyField(inputTexture, new GUIContent("Render Texture"), true);
            }

            videoCapture.captureType = (CaptureType)EditorGUILayout.EnumPopup("Capture Type", videoCapture.captureType);
            if (videoCapture.captureType == CaptureType.VOD)
            {
                videoCapture.saveFolder = EditorGUILayout.TextField("Save Folder", videoCapture.saveFolder);
            }
            else if (videoCapture.captureType == CaptureType.LIVE)
            {
                videoCapture.liveStreamUrl = EditorGUILayout.TextField("Live Stream Url", videoCapture.liveStreamUrl);
            }
            if (videoCapture.captureSource == CaptureSource.CAMERA)
            {
                videoCapture.captureMode = (CaptureMode)EditorGUILayout.EnumPopup("Capture Mode", videoCapture.captureMode);

                if (videoCapture.captureMode == CaptureMode._360)
                {
                    videoCapture.projectionType = (ProjectionType)EditorGUILayout.EnumPopup("Projection Type", videoCapture.projectionType);
                }

                if (videoCapture.captureMode == CaptureMode._360 &&
                    videoCapture.projectionType == ProjectionType.CUBEMAP)
                {
                    videoCapture.stereoMode = StereoMode.NONE;
                }
                else
                {
                    videoCapture.stereoMode = (StereoMode)EditorGUILayout.EnumPopup("Stereo Mode", videoCapture.stereoMode);
                }
                if (videoCapture.stereoMode != StereoMode.NONE)
                {
                    videoCapture.interpupillaryDistance = EditorGUILayout.FloatField("Interpupillary Distance", videoCapture.interpupillaryDistance);
                }
            }
            else
            {
                videoCapture.captureMode    = CaptureMode.REGULAR;
                videoCapture.projectionType = ProjectionType.NONE;
                videoCapture.stereoMode     = StereoMode.NONE;
            }

            if (videoCapture.captureSource == CaptureSource.SCREEN)
            {
                videoCapture.captureCursor = EditorGUILayout.Toggle("Capture Cursor", videoCapture.captureCursor);
                if (videoCapture.captureCursor)
                {
                    EditorGUILayout.PropertyField(cursorImage, new GUIContent("Cursor Image"), true);
                }
            }

            videoCapture.captureAudio = EditorGUILayout.Toggle("Capture Audio", videoCapture.captureAudio);
            if (videoCapture.captureAudio)
            {
                videoCapture.captureMicrophone = EditorGUILayout.Toggle("Capture Microphone", videoCapture.captureMicrophone);
                if (videoCapture.captureMicrophone)
                {
                    videoCapture.deviceIndex = EditorGUILayout.IntField("Device Index", videoCapture.deviceIndex);
                }
            }
            videoCapture.offlineRender = EditorGUILayout.Toggle("Offline Render", videoCapture.offlineRender);
            videoCapture.screenBlitter = EditorGUILayout.Toggle("Screen Blitter", videoCapture.screenBlitter);

            // Capture Options Section
            GUILayout.Label("Video Settings", EditorStyles.boldLabel);

            if (videoCapture.captureSource == CaptureSource.CAMERA)
            {
                videoCapture.resolutionPreset = (ResolutionPreset)EditorGUILayout.EnumPopup("Resolution Preset", videoCapture.resolutionPreset);
                if (videoCapture.resolutionPreset == ResolutionPreset.CUSTOM)
                {
                    videoCapture.frameWidth  = EditorGUILayout.IntField("Frame Width", videoCapture.frameWidth);
                    videoCapture.frameHeight = EditorGUILayout.IntField("Frame Height", videoCapture.frameHeight);
                    videoCapture.bitrate     = EditorGUILayout.IntField("Bitrate (Kbps)", videoCapture.bitrate);
                }
            }
            else
            {
                videoCapture.bitrate = EditorGUILayout.IntField("Bitrate (Kbps)", videoCapture.bitrate);
            }

            videoCapture.frameRate      = (System.Int16)EditorGUILayout.IntField("Frame Rate", videoCapture.frameRate);
            videoCapture.verticalFlip   = EditorGUILayout.Toggle("Vertical Flip", videoCapture.verticalFlip);
            videoCapture.horizontalFlip = EditorGUILayout.Toggle("Horizontal Flip", videoCapture.horizontalFlip);
            if (videoCapture.captureMode == CaptureMode._360)
            {
                videoCapture.cubemapFaceSize = (CubemapFaceSize)EditorGUILayout.EnumPopup("Cubemap Face Size", videoCapture.cubemapFaceSize);
            }
            videoCapture.antiAliasing = (AntiAliasingSetting)EditorGUILayout.EnumPopup("Anti Aliasing", videoCapture.antiAliasing);

            if (videoCapture.captureSource == CaptureSource.CAMERA)
            {
                videoCapture.transparent = EditorGUILayout.Toggle("Transparent", videoCapture.transparent);
            }

            // Capture Options Section
            GUILayout.Label("Encoder Settings", EditorStyles.boldLabel);

            videoCapture.encoderPreset = (EncoderPreset)EditorGUILayout.EnumPopup("Encoder Preset", videoCapture.encoderPreset);
#if UNITY_STANDALONE_WIN || UNITY_EDITOR_WIN
            if (!FreeTrial.Check())
            {
                videoCapture.gpuEncoding = EditorGUILayout.Toggle("GPU Encoding", videoCapture.gpuEncoding);
            }
            if (videoCapture.gpuEncoding)
            {
                videoCapture.legacyGpuEncoding = EditorGUILayout.Toggle("Legacy GPU Encoding", videoCapture.legacyGpuEncoding);
            }
#endif

            // Internal Settings
            GUILayout.Label("Internal Settings", EditorStyles.boldLabel);
            videoCapture.enableInternalSettings = EditorGUILayout.Toggle("Enable", videoCapture.enableInternalSettings);

            if (videoCapture.enableInternalSettings)
            {
                // Capture Encoder
                GUILayout.Label("Capture Encoders", EditorStyles.boldLabel);

                EditorGUILayout.PropertyField(ffmpegEncoder, new GUIContent("FFmpeg Encoder"), true);
                EditorGUILayout.PropertyField(nvidiaEncoder, new GUIContent("Nvidia Encoder"), true);
                EditorGUILayout.PropertyField(gpuEncoder, new GUIContent("GPU Encoder"), true);
            }

            //// Tools Section
            //GUILayout.Label("Tools", EditorStyles.boldLabel);
            GUILayout.Space(10);

            if (GUILayout.Button("Browse"))
            {
                // Open video save directory
                Utils.BrowseFolder(videoCapture.saveFolder);
            }
            //if (GUILayout.Button("Convert Last Video to WMV"))
            //{
            //  Utils.ConvertVideoWmv(VideoSaveUtils.lastVideoFile);
            //}
            //if (GUILayout.Button("Convert Last Video to AVI"))
            //{
            //  Utils.ConvertVideoAvi(VideoSaveUtils.lastVideoFile);
            //}
            //if (GUILayout.Button("Convert Last Video to FLV"))
            //{
            //  Utils.ConvertVideoFlv(VideoSaveUtils.lastVideoFile);
            //}
            //if (GUILayout.Button("Convert Last Video to MKV"))
            //{
            //  Utils.ConvertVideoMkv(VideoSaveUtils.lastVideoFile);
            //}
            //if (GUILayout.Button("Convert Last Video to GIF"))
            //{
            //  Utils.ConvertVideoGif(VideoSaveUtils.lastVideoFile);
            //}
            //if (GUILayout.Button("Encode Last Video to 4K"))
            //{
            //  Utils.EncodeVideo4K(VideoSaveUtils.lastVideoFile);
            //}
            //if (GUILayout.Button("Encode Last Video to 8K"))
            //{
            //  Utils.EncodeVideo8K(VideoSaveUtils.lastVideoFile);
            //}

            GUILayout.Space(10);

            if (GUI.changed)
            {
                EditorUtility.SetDirty(target);
                EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene());
            }

            // Apply changes to the serializedProperty - always do this at the end of OnInspectorGUI.
            serializedObject.ApplyModifiedProperties();
        }
コード例 #8
0
        public override void OnInspectorGUI()
        {
            // Capture Control Section
            GUILayout.Label("Capture Control", EditorStyles.boldLabel);

            manager.startOnAwake = EditorGUILayout.Toggle("Start On Awake", manager.startOnAwake);

            if (manager.startOnAwake)
            {
                manager.captureTime      = EditorGUILayout.FloatField("Capture Duration (Sec)", manager.captureTime);
                manager.quitAfterCapture = EditorGUILayout.Toggle("Quit After Capture", manager.quitAfterCapture);
            }

            // Capture Options Section
            GUILayout.Label("Capture Options", EditorStyles.boldLabel);

            manager.saveFolder  = EditorGUILayout.TextField("Save Folder", manager.saveFolder);
            manager.captureMode = (CaptureMode)EditorGUILayout.EnumPopup("Capture Mode", manager.captureMode);
            if (manager.captureMode == CaptureMode._360)
            {
                manager.projectionType = (ProjectionType)EditorGUILayout.EnumPopup("Projection Type", manager.projectionType);
            }
            if (manager.captureMode == CaptureMode._360 &&
                manager.projectionType == ProjectionType.CUBEMAP)
            {
                manager.stereoMode = StereoMode.NONE;
            }
            else
            {
                manager.stereoMode = (StereoMode)EditorGUILayout.EnumPopup("Stereo Mode", manager.stereoMode);
            }
            if (manager.stereoMode != StereoMode.NONE)
            {
                manager.interpupillaryDistance = EditorGUILayout.FloatField("Interpupillary Distance", manager.interpupillaryDistance);
            }
            manager.captureAudio = EditorGUILayout.Toggle("Capture Audio", manager.captureAudio);
            if (manager.captureAudio)
            {
                manager.captureMicrophone = EditorGUILayout.Toggle("Capture Microphone", manager.captureMicrophone);
                if (manager.captureMicrophone)
                {
                    manager.deviceIndex = EditorGUILayout.IntField("Device Index", manager.deviceIndex);
                }
            }
            manager.offlineRender = EditorGUILayout.Toggle("Offline Render", manager.offlineRender);

            // Capture Options Section
            GUILayout.Label("Video Settings", EditorStyles.boldLabel);

            manager.resolutionPreset = (ResolutionPreset)EditorGUILayout.EnumPopup("Resolution Preset", manager.resolutionPreset);
            if (manager.resolutionPreset == ResolutionPreset.CUSTOM)
            {
                manager.frameWidth  = EditorGUILayout.IntField("Frame Width", manager.frameWidth);
                manager.frameHeight = EditorGUILayout.IntField("Frame Height", manager.frameHeight);
                manager.bitrate     = EditorGUILayout.IntField("Bitrate (Kbps)", manager.bitrate);
            }
            manager.frameRate = (System.Int16)EditorGUILayout.IntField("Frame Rate", manager.frameRate);
            if (manager.captureMode == CaptureMode._360)
            {
                manager.cubemapFaceSize = (CubemapFaceSize)EditorGUILayout.EnumPopup("Cubemap Face Size", manager.cubemapFaceSize);
            }
            manager.antiAliasing = (AntiAliasingSetting)EditorGUILayout.EnumPopup("Anti Aliasing", manager.antiAliasing);

            // Capture Options Section
            GUILayout.Label("Encoder Settings", EditorStyles.boldLabel);

            if (!manager.gpuEncoding)
            {
                manager.encoderPreset = (EncoderPreset)EditorGUILayout.EnumPopup("Encoder Preset", manager.encoderPreset);
            }
#if UNITY_STANDALONE_WIN || UNITY_EDITOR_WIN
            if (!FreeTrial.Check())
            {
                manager.gpuEncoding = EditorGUILayout.Toggle("GPU Encoding", manager.gpuEncoding);
            }
#endif

            serializedObject.Update();
            EditorGUILayout.PropertyField(videoCaptures, new GUIContent("Video Captures"), true);
            // Apply changes to the serializedProperty - always do this at the end of OnInspectorGUI.
            serializedObject.ApplyModifiedProperties();

            //// Tools Section
            //GUILayout.Label("Tools", EditorStyles.boldLabel);
            GUILayout.Space(10);

            if (GUILayout.Button("Browse"))
            {
                // Open video save directory
                Utils.BrowseFolder(manager.saveFolder);
            }

            GUILayout.Space(10);

            if (GUI.changed)
            {
                EditorUtility.SetDirty(target);
                EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene());
            }
        }
コード例 #9
0
        public override void OnInspectorGUI()
        {
            // Capture Cameras
            GUILayout.Label("Capture Cameras", EditorStyles.boldLabel);

            EditorGUILayout.PropertyField(regularCamera, new GUIContent("Regular Camera"), true);
            EditorGUILayout.PropertyField(stereoCamera, new GUIContent("Stereo Camera"), true);

            // Capture Options Section
            GUILayout.Label("Capture Options", EditorStyles.boldLabel);

            screenshot.saveFolder = EditorGUILayout.TextField("Save Folder", screenshot.saveFolder);

            screenshot.captureMode = (CaptureMode)EditorGUILayout.EnumPopup("Capture Mode", screenshot.captureMode);
            if (screenshot.captureMode == CaptureMode._360)
            {
                screenshot.projectionType = (ProjectionType)EditorGUILayout.EnumPopup("Projection Type", screenshot.projectionType);
            }
            if (screenshot.captureMode == CaptureMode._360 &&
                screenshot.projectionType == ProjectionType.CUBEMAP)
            {
                screenshot.stereoMode = StereoMode.NONE;
            }
            else
            {
                screenshot.stereoMode = (StereoMode)EditorGUILayout.EnumPopup("Stereo Mode", screenshot.stereoMode);
            }
            if (screenshot.stereoMode != StereoMode.NONE)
            {
                screenshot.interpupillaryDistance = EditorGUILayout.FloatField("Interpupillary Distance", screenshot.interpupillaryDistance);
            }

            // Capture Options Section
            GUILayout.Label("Screenshot Settings", EditorStyles.boldLabel);

            screenshot.resolutionPreset = (ResolutionPreset)EditorGUILayout.EnumPopup("Resolution Preset", screenshot.resolutionPreset);
            if (screenshot.resolutionPreset == ResolutionPreset.CUSTOM)
            {
                screenshot.frameWidth  = EditorGUILayout.IntField("Frame Width", screenshot.frameWidth);
                screenshot.frameHeight = EditorGUILayout.IntField("Frame Height", screenshot.frameHeight);
            }
            if (screenshot.captureMode == CaptureMode._360)
            {
                screenshot.cubemapFaceSize = (CubemapFaceSize)EditorGUILayout.EnumPopup("Cubemap Face Size", screenshot.cubemapFaceSize);
            }
            screenshot.antiAliasingSetting = (AntiAliasingSetting)EditorGUILayout.EnumPopup("Anti Aliasing Settings", screenshot.antiAliasingSetting);

#if UNITY_STANDALONE_WIN || UNITY_EDITOR_WIN
            // Capture Options Section
            GUILayout.Label("Encoder Settings", EditorStyles.boldLabel);
            if (!FreeTrial.Check())
            {
                screenshot.gpuEncoding = EditorGUILayout.Toggle("GPU Encoding", screenshot.gpuEncoding);
            }
#endif

            //// Tools Section
            //GUILayout.Label("Tools", EditorStyles.boldLabel);
            GUILayout.Space(10);

            if (GUILayout.Button("Browse"))
            {
                // Open video save directory
                Utils.BrowseFolder(screenshot.saveFolder);
            }

            if (GUI.changed)
            {
                EditorUtility.SetDirty(target);
                EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene());
            }

            // Apply changes to the serializedProperty - always do this at the end of OnInspectorGUI.
            serializedObject.ApplyModifiedProperties();
        }
コード例 #10
0
        public override void OnInspectorGUI()
        {
            serializedObject.Update();

            // Capture Cameras
            GUILayout.Label("Capture Cameras", EditorStyles.boldLabel);

            EditorGUILayout.PropertyField(regularCamera, new GUIContent("Regular Camera"), true);
            EditorGUILayout.PropertyField(stereoCamera, new GUIContent("Stereo Camera"), true);

            // Capture Control Section
            GUILayout.Label("Capture Controls", EditorStyles.boldLabel);

            sequenceCapture.startOnAwake = EditorGUILayout.Toggle("Start On Awake", sequenceCapture.startOnAwake);
            if (sequenceCapture.startOnAwake)
            {
                sequenceCapture.captureTime      = EditorGUILayout.FloatField("Capture Duration (Sec)", sequenceCapture.captureTime);
                sequenceCapture.quitAfterCapture = EditorGUILayout.Toggle("Quit After Capture", sequenceCapture.quitAfterCapture);
            }

            // Capture Options Section
            GUILayout.Label("Capture Options", EditorStyles.boldLabel);

            sequenceCapture.captureSource = (CaptureSource)EditorGUILayout.EnumPopup("Capture Source", sequenceCapture.captureSource);

            if (sequenceCapture.captureSource == CaptureSource.RENDERTEXTURE)
            {
                EditorGUILayout.PropertyField(inputTexture, new GUIContent("Render Texture"), true);
            }

            sequenceCapture.captureType = (CaptureType)EditorGUILayout.EnumPopup("Capture Type", sequenceCapture.captureType);
            sequenceCapture.saveFolder  = EditorGUILayout.TextField("Save Folder", sequenceCapture.saveFolder);

            if (sequenceCapture.captureSource == CaptureSource.CAMERA)
            {
                sequenceCapture.captureMode = (CaptureMode)EditorGUILayout.EnumPopup("Capture Mode", sequenceCapture.captureMode);

                if (sequenceCapture.captureMode == CaptureMode._360)
                {
                    sequenceCapture.projectionType = (ProjectionType)EditorGUILayout.EnumPopup("Projection Type", sequenceCapture.projectionType);
                }

                if (sequenceCapture.captureMode == CaptureMode._360 &&
                    sequenceCapture.projectionType == ProjectionType.CUBEMAP)
                {
                    sequenceCapture.stereoMode = StereoMode.NONE;
                }
                else
                {
                    sequenceCapture.stereoMode = (StereoMode)EditorGUILayout.EnumPopup("Stereo Mode", sequenceCapture.stereoMode);
                }
                if (sequenceCapture.stereoMode != StereoMode.NONE)
                {
                    sequenceCapture.interpupillaryDistance = EditorGUILayout.FloatField("Interpupillary Distance", sequenceCapture.interpupillaryDistance);
                }
            }
            else
            {
                sequenceCapture.captureMode    = CaptureMode.REGULAR;
                sequenceCapture.projectionType = ProjectionType.NONE;
                sequenceCapture.stereoMode     = StereoMode.NONE;
            }

            if (sequenceCapture.captureSource == CaptureSource.SCREEN)
            {
                sequenceCapture.captureCursor = EditorGUILayout.Toggle("Capture Cursor", sequenceCapture.captureCursor);
                if (sequenceCapture.captureCursor)
                {
                    EditorGUILayout.PropertyField(cursorImage, new GUIContent("Cursor Image"), true);
                }
            }

            // Capture Options Section
            GUILayout.Label("Image Settings", EditorStyles.boldLabel);

            sequenceCapture.imageFormat = (ImageFormat)EditorGUILayout.EnumPopup("Image Format", sequenceCapture.imageFormat);
            if (sequenceCapture.imageFormat == ImageFormat.JPEG)
            {
                sequenceCapture.jpgQuality = EditorGUILayout.IntField("Encode Quality", sequenceCapture.jpgQuality);
            }

            if (sequenceCapture.captureSource == CaptureSource.CAMERA)
            {
                sequenceCapture.resolutionPreset = (ResolutionPreset)EditorGUILayout.EnumPopup("Resolution Preset", sequenceCapture.resolutionPreset);
                if (sequenceCapture.resolutionPreset == ResolutionPreset.CUSTOM)
                {
                    sequenceCapture.frameWidth  = EditorGUILayout.IntField("Frame Width", sequenceCapture.frameWidth);
                    sequenceCapture.frameHeight = EditorGUILayout.IntField("Frame Height", sequenceCapture.frameHeight);
                    //sequenceCapture.bitrate = EditorGUILayout.IntField("Bitrate (Kbps)", sequenceCapture.bitrate);
                }
            }

            sequenceCapture.frameRate = (System.Int16)EditorGUILayout.IntField("Frame Rate", sequenceCapture.frameRate);
            if (sequenceCapture.captureMode == CaptureMode._360)
            {
                sequenceCapture.cubemapFaceSize = (CubemapFaceSize)EditorGUILayout.EnumPopup("Cubemap Face Size", sequenceCapture.cubemapFaceSize);
            }
            sequenceCapture.antiAliasing = (AntiAliasingSetting)EditorGUILayout.EnumPopup("Anti Aliasing", sequenceCapture.antiAliasing);

            if (sequenceCapture.captureSource == CaptureSource.CAMERA)
            {
                sequenceCapture.transparent = EditorGUILayout.Toggle("Transparent", sequenceCapture.transparent);
            }

            // Capture Options Section
            GUILayout.Label("Encoder Settings", EditorStyles.boldLabel);

            sequenceCapture.encodeFromImages = EditorGUILayout.Toggle("Encode Video From Images", sequenceCapture.encodeFromImages);
            if (sequenceCapture.encodeFromImages)
            {
                sequenceCapture.encoderPreset = (EncoderPreset)EditorGUILayout.EnumPopup("Encoder Preset", sequenceCapture.encoderPreset);
                sequenceCapture.cleanImages   = EditorGUILayout.Toggle("Clean Images After Encode", sequenceCapture.cleanImages);
            }

            //// Tools Section
            //GUILayout.Label("Tools", EditorStyles.boldLabel);
            GUILayout.Space(10);

            if (GUILayout.Button("Browse"))
            {
                // Open video save directory
                Utils.BrowseFolder(sequenceCapture.saveFolder);
            }
            //if (GUILayout.Button("Convert Last Video to WMV"))
            //{
            //  Utils.ConvertVideoWmv(VideoSaveUtils.lastVideoFile);
            //}
            //if (GUILayout.Button("Convert Last Video to AVI"))
            //{
            //  Utils.ConvertVideoAvi(VideoSaveUtils.lastVideoFile);
            //}
            //if (GUILayout.Button("Convert Last Video to FLV"))
            //{
            //  Utils.ConvertVideoFlv(VideoSaveUtils.lastVideoFile);
            //}
            //if (GUILayout.Button("Convert Last Video to MKV"))
            //{
            //  Utils.ConvertVideoMkv(VideoSaveUtils.lastVideoFile);
            //}
            //if (GUILayout.Button("Convert Last Video to GIF"))
            //{
            //  Utils.ConvertVideoGif(VideoSaveUtils.lastVideoFile);
            //}
            //if (GUILayout.Button("Encode Last Video to 4K"))
            //{
            //  Utils.EncodeVideo4K(VideoSaveUtils.lastVideoFile);
            //}
            //if (GUILayout.Button("Encode Last Video to 8K"))
            //{
            //  Utils.EncodeVideo8K(VideoSaveUtils.lastVideoFile);
            //}

            GUILayout.Space(10);

            if (GUI.changed)
            {
                EditorUtility.SetDirty(target);
                EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene());
            }

            // Apply changes to the serializedProperty - always do this at the end of OnInspectorGUI.
            serializedObject.ApplyModifiedProperties();
        }
コード例 #11
0
        public override void OnInspectorGUI()
        {
            serializedObject.Update();

            // Capture Cameras
            GUILayout.Label("Capture Cameras", EditorStyles.boldLabel);

            EditorGUILayout.PropertyField(regularCamera, new GUIContent("Regular Camera"), true);
            EditorGUILayout.PropertyField(stereoCamera, new GUIContent("Stereo Camera"), true);

            // Capture Options Section
            GUILayout.Label("Capture Options", EditorStyles.boldLabel);

            imageCapture.captureSource = (CaptureSource)EditorGUILayout.EnumPopup("Capture Source", imageCapture.captureSource);

            if (imageCapture.captureSource == CaptureSource.RENDERTEXTURE)
            {
                EditorGUILayout.PropertyField(inputTexture, new GUIContent("Render Texture"), true);
            }

            imageCapture.saveFolder = EditorGUILayout.TextField("Save Folder", imageCapture.saveFolder);

            if (imageCapture.captureSource == CaptureSource.CAMERA)
            {
                imageCapture.captureMode = (CaptureMode)EditorGUILayout.EnumPopup("Capture Mode", imageCapture.captureMode);

                if (imageCapture.captureMode == CaptureMode._360)
                {
                    imageCapture.projectionType = (ProjectionType)EditorGUILayout.EnumPopup("Projection Type", imageCapture.projectionType);
                }

                if (imageCapture.captureMode == CaptureMode._360 &&
                    imageCapture.projectionType == ProjectionType.CUBEMAP)
                {
                    imageCapture.stereoMode = StereoMode.NONE;
                }
                else
                {
                    imageCapture.stereoMode = (StereoMode)EditorGUILayout.EnumPopup("Stereo Mode", imageCapture.stereoMode);
                }
                if (imageCapture.stereoMode != StereoMode.NONE)
                {
                    imageCapture.interpupillaryDistance = EditorGUILayout.FloatField("Interpupillary Distance", imageCapture.interpupillaryDistance);
                }
            }
            else
            {
                imageCapture.captureMode    = CaptureMode.REGULAR;
                imageCapture.projectionType = ProjectionType.NONE;
                imageCapture.stereoMode     = StereoMode.NONE;
            }

            if (imageCapture.captureSource == CaptureSource.SCREEN)
            {
                imageCapture.captureCursor = EditorGUILayout.Toggle("Capture Cursor", imageCapture.captureCursor);
                if (imageCapture.captureCursor)
                {
                    EditorGUILayout.PropertyField(cursorImage, new GUIContent("Cursor Image"), true);
                }
            }

            // Capture Options Section
            GUILayout.Label("Image Settings", EditorStyles.boldLabel);

            imageCapture.imageFormat = (ImageFormat)EditorGUILayout.EnumPopup("Image Format", imageCapture.imageFormat);
            if (imageCapture.imageFormat == ImageFormat.JPEG)
            {
                imageCapture.jpgQuality = EditorGUILayout.IntField("Encode Quality", imageCapture.jpgQuality);
            }

            if (imageCapture.captureSource == CaptureSource.CAMERA)
            {
                imageCapture.resolutionPreset = (ResolutionPreset)EditorGUILayout.EnumPopup("Resolution Preset", imageCapture.resolutionPreset);
                if (imageCapture.resolutionPreset == ResolutionPreset.CUSTOM)
                {
                    imageCapture.frameWidth  = EditorGUILayout.IntField("Frame Width", imageCapture.frameWidth);
                    imageCapture.frameHeight = EditorGUILayout.IntField("Frame Height", imageCapture.frameHeight);
                }
            }

            if (imageCapture.captureMode == CaptureMode._360)
            {
                imageCapture.cubemapFaceSize = (CubemapFaceSize)EditorGUILayout.EnumPopup("Cubemap Face Size", imageCapture.cubemapFaceSize);
            }
            imageCapture.antiAliasing = (AntiAliasingSetting)EditorGUILayout.EnumPopup("Anti Aliasing", imageCapture.antiAliasing);

            if (imageCapture.captureSource == CaptureSource.CAMERA)
            {
                imageCapture.transparent = EditorGUILayout.Toggle("Transparent", imageCapture.transparent);
            }

            //// Tools Section
            //GUILayout.Label("Tools", EditorStyles.boldLabel);
            GUILayout.Space(10);

            if (GUILayout.Button("Capture"))
            {
                // Call start capture image
                imageCapture.StartCapture();
            }

            if (GUILayout.Button("Browse"))
            {
                // Open video save directory
                Utils.BrowseFolder(imageCapture.saveFolder);
            }

            GUILayout.Space(10);

            if (GUI.changed)
            {
                EditorUtility.SetDirty(target);
                EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene());
            }

            // Apply changes to the serializedProperty - always do this at the end of OnInspectorGUI.
            serializedObject.ApplyModifiedProperties();
        }