using UnityEngine; using UnityEditor; namespace Klak.Ndi.Editor { [CanEditMultipleObjects] [CustomEditor(typeof(NdiSender))] sealed class NdiSenderEditor : UnityEditor.Editor { static class Labels { public static Label NdiName = "NDI Name"; } #pragma warning disable CS0649 AutoProperty _ndiName; AutoProperty _keepAlpha; AutoProperty _captureMethod; AutoProperty _sourceCamera; AutoProperty _sourceTexture; #pragma warning restore void OnEnable() => AutoProperty.Scan(this); public override void OnInspectorGUI() { serializedObject.Update(); // NDI Name if (_captureMethod.Target.hasMultipleDifferentValues || _captureMethod.Target.enumValueIndex != (int)CaptureMethod.GameView) EditorGUILayout.DelayedTextField(_ndiName, Labels.NdiName); // Keep Alpha EditorGUILayout.PropertyField(_keepAlpha); // Capture Method EditorGUILayout.PropertyField(_captureMethod); EditorGUI.indentLevel++; // Source Camera if (_captureMethod.Target.hasMultipleDifferentValues || _captureMethod.Target.enumValueIndex == (int)CaptureMethod.Camera) EditorGUILayout.PropertyField(_sourceCamera); // Source Texture if (_captureMethod.Target.hasMultipleDifferentValues || _captureMethod.Target.enumValueIndex == (int)CaptureMethod.Texture) EditorGUILayout.PropertyField(_sourceTexture); EditorGUI.indentLevel--; serializedObject.ApplyModifiedProperties(); } } } // namespace Klak.Ndi.Editor