public override void OnInspectorGUI()
        {
            _defaultColor = GUI.color;

            GUILayout.Space(10);
            OSCEditorLayout.DrawLogo();
            GUILayout.Space(10);

            GUILayout.BeginVertical("box");

            var openButton = GUILayout.Button(_openButton, GUILayout.Height(40));

            if (openButton)
            {
                OSCWindowMapping.OpenBundle((OSCMapBundle)target);
            }

            GUILayout.EndVertical();

            GUILayout.BeginVertical();

            if (_bundle.Messages.Count > 0)
            {
                foreach (var message in _bundle.Messages)
                {
                    GUILayout.BeginVertical("box");

                    GUILayout.BeginVertical("box");
                    EditorGUILayout.LabelField("Address: " + message.Address, EditorStyles.boldLabel);
                    GUILayout.EndVertical();

                    foreach (var value in message.Values)
                    {
                        DrawValue(value);
                    }

                    GUILayout.EndVertical();
                }
            }
            else
            {
                EditorGUILayout.BeginHorizontal("box");
                GUILayout.Label(_emptyBundleContent, OSCEditorStyles.CenterLabel, GUILayout.Height(40));
                EditorGUILayout.EndHorizontal();
            }

            GUILayout.EndVertical();
        }
        public override void OnInspectorGUI()
        {
            serializedObject.Update();

            // LOGO
            GUILayout.Space(10);
            OSCEditorLayout.DrawLogo();
            GUILayout.Space(5);

            EditorGUILayout.LabelField("Active: " + _transmitter.IsAvailable, EditorStyles.boldLabel);

            // SETTINGS BLOCK
            GUILayout.BeginVertical("box");

            EditorGUILayout.LabelField("Transmitter Settings:", EditorStyles.boldLabel);

            // SETTINGS BOX
            GUILayout.BeginVertical("box");
            EditorGUI.BeginChangeCheck();

            IPAddress tempAddress;

            var remoteFieldColor = IPAddress.TryParse(_remoteHostProperty.stringValue, out tempAddress) ? Color.white : Color.red;

            // REMOTE HOST
            GUI.color = remoteFieldColor;
            EditorGUILayout.PropertyField(_remoteHostProperty, _hostContent);
            GUI.color = Color.white;

            // REMOTE PORT
            EditorGUILayout.PropertyField(_remotePortProperty, _portContent);

            // MAP BUNDLE
            EditorGUILayout.PropertyField(_mapBundleProperty, _mapBundleContent);

            // USE BUNDLE
            GUI.color = _useBundleProperty.boolValue ? Color.green : Color.red;
            if (GUILayout.Button("Use Bundle"))
            {
                _useBundleProperty.boolValue = !_useBundleProperty.boolValue;
            }
            GUI.color = Color.white;

            // SETTINGS BOX END
            EditorGUILayout.EndVertical();

            // PARAMETETS BLOCK
            EditorGUILayout.BeginHorizontal("box");

            GUI.color = _autoConnectProperty.boolValue ? Color.green : Color.red;
            if (GUILayout.Button("Auto Connect"))
            {
                _autoConnectProperty.boolValue = !_autoConnectProperty.boolValue;
            }
            GUI.color = Color.white;

            GUI.color = _closeOnPauseProperty.boolValue? Color.green : Color.red;
            if (GUILayout.Button("Close On Pause"))
            {
                _closeOnPauseProperty.boolValue = !_closeOnPauseProperty.boolValue;
            }
            GUI.color = Color.white;

            // PARAMETERS BLOCK END
            EditorGUILayout.EndHorizontal();

            // ADVANCED SETTIGS BOX
            EditorGUILayout.LabelField(_advancedContent, EditorStyles.boldLabel);
            GUILayout.BeginVertical("box");
            //EditorGUI.BeginChangeCheck();

            if (EditorUserBuildSettings.selectedBuildTargetGroup == BuildTargetGroup.WSA)
            {
                GUI.color = Color.yellow;
                EditorGUILayout.HelpBox("Currently \"Advanced settings\" are not available for UWP (WSA).", MessageType.Info);
                GUI.color = Color.white;
            }

            // LOCAL PORT MODE
            EditorGUILayout.PropertyField(_localPortMode, _localPortModeContent);

            // LOCAL PORT
            if (_transmitter.LocalPortMode == OSCLocalPortMode.FromRemotePort)
            {
                // LOCAL FROM REMOTE PORT
                GUILayout.BeginHorizontal();
                EditorGUILayout.LabelField(_localPortContent, GUILayout.Width(EditorGUIUtility.labelWidth - 4));
                EditorGUILayout.SelectableLabel(_transmitter.RemotePort.ToString(), GUILayout.Height(EditorGUIUtility.singleLineHeight));
                GUILayout.EndHorizontal();
            }
            else if (_transmitter.LocalPortMode == OSCLocalPortMode.FromReceiver)
            {
                // LOCAL RECEIVER
                EditorGUILayout.PropertyField(_localReceiver, _localReceiverContent);

                var localPort = _transmitter.RemotePort.ToString();
                var receiver  = _localReceiver.objectReferenceValue as OSCReceiver;
                if (receiver != null)
                {
                    localPort = receiver.LocalPort.ToString();
                }

                GUILayout.BeginHorizontal();
                EditorGUILayout.LabelField(_localPortContent, GUILayout.Width(EditorGUIUtility.labelWidth - 4));
                EditorGUILayout.SelectableLabel(localPort, GUILayout.Height(EditorGUIUtility.singleLineHeight));
                GUILayout.EndHorizontal();
            }
            else if (_transmitter.LocalPortMode == OSCLocalPortMode.Custom)
            {
                // LOCAL PORT
                EditorGUILayout.PropertyField(_localPort, _localPortContent);
            }

            EditorGUILayout.EndVertical();


            // CONTROLS
            EditorGUILayout.LabelField(Application.isPlaying ? _inGameContent : _inEditorContent, EditorStyles.boldLabel);

            if (Application.isPlaying)
            {
                DrawControllsInGame();
            }
            else
            {
                DrawControllsInEditor();
            }

            // CONTROLS END
            EditorGUILayout.EndVertical();

            // EDITOR BUTTONS
            GUI.color = Color.white;

            if (EditorGUI.EndChangeCheck())
            {
                serializedObject.ApplyModifiedProperties();
            }
        }
        public override void OnInspectorGUI()
        {
            _defaultColor = GUI.color;

            serializedObject.Update();

            // LOGO
            GUILayout.Space(10);
            OSCEditorLayout.DrawLogo();
            GUILayout.Space(5);

            // STATUS
            EditorGUILayout.LabelField("Active: " + _receiver.IsAvaible, EditorStyles.boldLabel);

            // SETTINGS BLOCK
            GUILayout.BeginVertical("box");

            EditorGUILayout.LabelField("Receiver Settings:", EditorStyles.boldLabel);

            // SETTINGS BOX
            GUILayout.BeginVertical("box");
            EditorGUI.BeginChangeCheck();

            //LOCAL HOST
            GUILayout.BeginHorizontal();
            EditorGUILayout.LabelField(_hostContent, GUILayout.Width(EditorGUIUtility.labelWidth - 4));
            EditorGUILayout.SelectableLabel(_localHost, GUILayout.Height(EditorGUIUtility.singleLineHeight));
            GUILayout.EndHorizontal();

            // LOCAL PORT
            EditorGUILayout.PropertyField(_localPortProperty, _portContent);

            // MAP BUNDLE
            EditorGUILayout.PropertyField(_mapBundleProperty, _mapBundleContent);

            // SETTINGS BOX END
            EditorGUILayout.EndVertical();

            // PARAMETERS BLOCK
            EditorGUILayout.BeginHorizontal("box");

            GUI.color = _autoConnectProperty.boolValue ? Color.green : Color.red;
            if (GUILayout.Button("Auto Connect"))
            {
                _autoConnectProperty.boolValue = !_autoConnectProperty.boolValue;
            }
            GUI.color = _defaultColor;

            GUI.color = _closeOnPauseProperty.boolValue? Color.green : Color.red;
            if (GUILayout.Button("Close On Pause"))
            {
                _closeOnPauseProperty.boolValue = !_closeOnPauseProperty.boolValue;
            }
            GUI.color = _defaultColor;

            // SETTINGS BLOCK END
            EditorGUILayout.EndHorizontal();

            // CONTROLS
            EditorGUILayout.LabelField(Application.isPlaying ? _inGameContent : _inEditorContent, EditorStyles.boldLabel);

            if (Application.isPlaying)
            {
                DrawControllsInGame();
            }
            else
            {
                DrawControllsInEditor();
            }

            // CONTROLS END
            EditorGUILayout.EndVertical();

            // EDITOR BUTTONS
            GUI.color = Color.white;

            serializedObject.ApplyModifiedProperties();
        }
        public override void OnInspectorGUI()
        {
            _defaultColor = GUI.color;

            serializedObject.Update();

            // LOGO
            GUILayout.Space(10);
            OSCEditorLayout.DrawLogo();
            GUILayout.Space(5);

            EditorGUILayout.LabelField("Active: " + _transmitter.IsAvaible, EditorStyles.boldLabel);

            // SETTINGS BLOCK
            GUILayout.BeginVertical("box");

            EditorGUILayout.LabelField("Transmitter Settings:", EditorStyles.boldLabel);

            // SETTINGS BOX
            GUILayout.BeginVertical("box");
            EditorGUI.BeginChangeCheck();

            IPAddress tempAddress;

            var remoteFieldColor = IPAddress.TryParse(_remoteHostProperty.stringValue, out tempAddress) ? _defaultColor : Color.red;

            // REMOTE HOST
            GUI.color = remoteFieldColor;
            EditorGUILayout.PropertyField(_remoteHostProperty, _hostContent);
            GUI.color = _defaultColor;

            // REMOTE PORT
            EditorGUILayout.PropertyField(_remotePortProperty, _portContent);

            // MAP BUNDLE
            EditorGUILayout.PropertyField(_mapBundleProperty, _mapBundleContent);

            // USE BUNDLE
            GUI.color = _useBundleProperty.boolValue ? Color.green : Color.red;
            if (GUILayout.Button("Use Bundle"))
            {
                _useBundleProperty.boolValue = !_useBundleProperty.boolValue;
            }
            GUI.color = _defaultColor;

            // SETTINGS BOX END
            EditorGUILayout.EndVertical();

            // AUTO CONNECT
            EditorGUILayout.BeginHorizontal("box");

            GUI.color = _autoConnectProperty.boolValue ? Color.green : Color.red;
            if (GUILayout.Button("Auto Connect"))
            {
                _autoConnectProperty.boolValue = !_autoConnectProperty.boolValue;
            }
            GUI.color = _defaultColor;

            // SETTINGS BLOCK END
            EditorGUILayout.EndHorizontal();

            // CONTROLS
            EditorGUILayout.LabelField(Application.isPlaying ? _inGameContent : _inEditorContent, EditorStyles.boldLabel);

            if (Application.isPlaying)
            {
                DrawControllsInGame();
            }
            else
            {
                DrawControllsInEditor();
            }

            // CONTROLS END
            EditorGUILayout.EndVertical();

            // EDITOR BUTTONS
            GUI.color = Color.white;


            serializedObject.ApplyModifiedProperties();
        }
示例#5
0
        public override void OnInspectorGUI()
        {
            serializedObject.Update();

            // LOGO
            GUILayout.Space(10);
            OSCEditorLayout.DrawLogo();
            GUILayout.Space(5);

            // STATUS
            EditorGUILayout.LabelField("Active: " + _receiver.IsAvailable, EditorStyles.boldLabel);

            // SETTINGS BLOCK
            GUILayout.BeginVertical("box");

            EditorGUILayout.LabelField("Receiver Settings:", EditorStyles.boldLabel);

            // SETTINGS BOX
            GUILayout.BeginVertical("box");
            EditorGUI.BeginChangeCheck();

            //LOCAL HOST
            if (_receiver.LocalHostMode == OSCLocalHostMode.Any)
            {
                GUILayout.BeginHorizontal();
                EditorGUILayout.LabelField(_hostContent, GUILayout.Width(EditorGUIUtility.labelWidth - 4));
                EditorGUILayout.SelectableLabel(_localHostCache, GUILayout.Height(EditorGUIUtility.singleLineHeight));
                GUILayout.EndHorizontal();
            }
            else
            {
                EditorGUILayout.PropertyField(_localHostProperty, _hostContent);
            }

            // LOCAL PORT
            EditorGUILayout.PropertyField(_localPortProperty, _portContent);

            // MAP BUNDLE
            EditorGUILayout.PropertyField(_mapBundleProperty, _mapBundleContent);

            // SETTINGS BOX END
            EditorGUILayout.EndVertical();

            // PARAMETERS BLOCK
            EditorGUILayout.BeginHorizontal("box");

            GUI.color = _autoConnectProperty.boolValue ? Color.green : Color.red;
            if (GUILayout.Button("Auto Connect"))
            {
                _autoConnectProperty.boolValue = !_autoConnectProperty.boolValue;
            }
            GUI.color = Color.white;

            GUI.color = _closeOnPauseProperty.boolValue? Color.green : Color.red;
            if (GUILayout.Button("Close On Pause"))
            {
                _closeOnPauseProperty.boolValue = !_closeOnPauseProperty.boolValue;
            }
            GUI.color = Color.white;

            // SETTINGS BLOCK END
            EditorGUILayout.EndHorizontal();

            // ADVANCED BLOCK
            EditorGUILayout.LabelField(_advancedContent, EditorStyles.boldLabel);
            EditorGUILayout.BeginHorizontal("box");

            if (EditorUserBuildSettings.selectedBuildTargetGroup == BuildTargetGroup.WSA)
            {
                GUI.color = Color.yellow;
                EditorGUILayout.HelpBox(_advancedHelp, MessageType.Info);
                GUI.color = Color.white;
            }

            EditorGUILayout.PropertyField(_localHostModeProperty, _hostModeContent);

            // ADVANCED BLOCK END
            EditorGUILayout.EndHorizontal();

            // CONTROLS
            EditorGUILayout.LabelField(Application.isPlaying ? _inGameContent : _inEditorContent, EditorStyles.boldLabel);

            if (Application.isPlaying)
            {
                DrawControlsInGame();
            }
            else
            {
                DrawControlsInEditor();
            }

            // CONTROLS END
            EditorGUILayout.EndVertical();

            // EDITOR BUTTONS
            GUI.color = Color.white;

            if (EditorGUI.EndChangeCheck())
            {
                serializedObject.ApplyModifiedProperties();
            }
        }