1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- using UnityEngine;
- using UnityEditor;
- //-----------------------------------------------------------------------------
- // Copyright 2015-2021 RenderHeads Ltd. All rights reserved.
- //-----------------------------------------------------------------------------
- namespace RenderHeads.Media.AVProVideo.Editor
- {
- /// <summary>
- /// Editor for the DisplayIMGUI component
- /// </summary>
- [CanEditMultipleObjects]
- [CustomEditor(typeof(DisplayIMGUI))]
- public class DisplayIMGUIEditor : UnityEditor.Editor
- {
- private SerializedProperty _propMediaPlayer;
- private SerializedProperty _propScaleMode;
- private SerializedProperty _propColor;
- private SerializedProperty _propAllowTransparency;
- private SerializedProperty _propUseDepth;
- private SerializedProperty _propDepth;
- private SerializedProperty _propAreaFullscreen;
- private SerializedProperty _propAreaX;
- private SerializedProperty _propAreaY;
- private SerializedProperty _propAreaWidth;
- private SerializedProperty _propAreaHeight;
- private SerializedProperty _propShowAreaInEditor;
- void OnEnable()
- {
- _propMediaPlayer = this.CheckFindProperty("_mediaPlayer");
- _propScaleMode = this.CheckFindProperty("_scaleMode");
- _propColor = this.CheckFindProperty("_color");
- _propAllowTransparency = this.CheckFindProperty("_allowTransparency");
- _propUseDepth = this.CheckFindProperty("_useDepth");
- _propDepth = this.CheckFindProperty("_depth");
- _propAreaFullscreen = this.CheckFindProperty("_isAreaFullScreen");
- _propAreaX = this.CheckFindProperty("_areaX");
- _propAreaY = this.CheckFindProperty("_areaY");
- _propAreaWidth = this.CheckFindProperty("_areaWidth");
- _propAreaHeight = this.CheckFindProperty("_areaHeight");
- _propShowAreaInEditor = this.CheckFindProperty("_showAreaInEditor");
- }
- public override void OnInspectorGUI()
- {
- serializedObject.Update();
- EditorGUI.BeginChangeCheck();
- EditorGUILayout.PropertyField(_propMediaPlayer);
- EditorGUILayout.PropertyField(_propScaleMode);
- EditorGUILayout.PropertyField(_propColor);
- EditorGUILayout.PropertyField(_propAllowTransparency);
- EditorGUILayout.PropertyField(_propUseDepth);
- if (_propUseDepth.boolValue)
- {
- EditorGUILayout.PropertyField(_propDepth);
- }
- // Area
- EditorGUILayout.PropertyField(_propAreaFullscreen, new GUIContent("Full Screen"));
- if (!_propAreaFullscreen.boolValue)
- {
- EditorGUILayout.PropertyField(_propAreaX, new GUIContent("X"));
- EditorGUILayout.PropertyField(_propAreaY, new GUIContent("Y"));
- EditorGUILayout.PropertyField(_propAreaWidth, new GUIContent("Width"));
- EditorGUILayout.PropertyField(_propAreaHeight, new GUIContent("Height"));
- }
- EditorGUILayout.PropertyField(_propShowAreaInEditor, new GUIContent("Show in Editor"));
- serializedObject.ApplyModifiedProperties();
- // Force update
- bool unhandledChanges = (EditorGUI.EndChangeCheck() && Application.isPlaying);
- if (unhandledChanges)
- {
- foreach (Object obj in this.targets)
- {
- ((DisplayIMGUI)obj).Update();
- }
- }
- }
- }
- }
|