private static void TriggerActivationGui([NotNull] VoiceReceiptTrigger trigger)
        {
            using (var scope = new EditorGUILayout.ToggleGroupScope("Trigger Activation", trigger.UseColliderTrigger))
            {
                trigger.ChangeWithUndo(
                    "Changed Dissonance Trigger Activation",
                    scope.enabled,
                    trigger.UseColliderTrigger,
                    a => trigger.UseColliderTrigger = a
                    );

                EditorGUILayout.HelpBox(
                    "Use trigger activation to only receive when the player is inside a trigger volume.",
                    MessageType.Info);

                if (trigger.UseColliderTrigger)
                {
                    var triggers2D = trigger.gameObject.GetComponents <Collider2D>().Any(c => c.isTrigger);
                    var triggers3D = trigger.gameObject.GetComponents <Collider>().Any(c => c.isTrigger);
                    if (!triggers2D && !triggers3D)
                    {
                        EditorGUILayout.HelpBox("Cannot find any collider triggers attached to this entity.", MessageType.Warning);
                    }
                }
            }
        }
Пример #2
0
        private static void TriggerActivationGui(VoiceReceiptTrigger trigger)
        {
            using (var scope = new EditorGUILayout.ToggleGroupScope("Trigger Activation", trigger.UseTrigger))
            {
                trigger.ChangeWithUndo(
                    "Changed Dissonance Trigger Activation",
                    scope.enabled,
                    trigger.UseTrigger,
                    a => trigger.UseTrigger = a
                    );

                EditorGUILayout.HelpBox(
                    "Use trigger activation to only receive when the player is inside a trigger volume.",
                    MessageType.Info);

                if (trigger.UseTrigger)
                {
                    if (!trigger.gameObject.GetComponents <Collider>().Any(c => c.isTrigger))
                    {
                        EditorGUILayout.HelpBox("Cannot find any collider triggers attached to this entity.", MessageType.Warning);
                    }
                    if (!trigger.gameObject.GetComponents <Rigidbody>().Any() && !trigger.gameObject.GetComponents <CharacterController>().Any())
                    {
                        EditorGUILayout.HelpBox("Cannot find either a RigidBody nor CharacterController attached to this entity (required for triggers to work).", MessageType.Warning);
                    }
                }
            }
        }
        private void RoomsGui([NotNull] VoiceReceiptTrigger trigger)
        {
            var roomNames = _roomSettings.Names;

            var haveRooms = roomNames.Count > 0;

            if (haveRooms)
            {
                var roomList  = new List <string>(roomNames);
                var roomIndex = roomList.IndexOf(trigger.RoomName);
                var deadRoom  = false;

                using (new EditorGUILayout.HorizontalScope())
                {
                    //Detect if the room name is not null, and is also not in the list. This implies the room has been deleted from the room list. In this case
                    if (roomIndex == -1 && !string.IsNullOrEmpty(trigger.RoomName))
                    {
                        roomList.Insert(0, trigger.RoomName);
                        roomIndex = 0;
                        deadRoom  = true;
                    }

                    trigger.ChangeWithUndo(
                        "Changed Dissonance Receiver Room",
                        EditorGUILayout.Popup(new GUIContent("Chat Room", "The room to receive voice from"), roomIndex, roomList.Select(a => new GUIContent(a)).ToArray()),
                        roomIndex,
                        a => trigger.RoomName = roomList[a]
                        );

                    if (GUILayout.Button("Config Rooms"))
                    {
                        ChatRoomSettingsEditor.GoToSettings();
                    }
                }

                if (deadRoom)
                {
                    EditorGUILayout.HelpBox(string.Format("Room '{0}' is no longer defined in the chat room configuration! \nRe-create the '{0}' room, or select a different room.", trigger.RoomName), MessageType.Warning);
                }
                else if (string.IsNullOrEmpty(trigger.RoomName))
                {
                    EditorGUILayout.HelpBox("No chat room selected", MessageType.Error);
                }
            }
            else
            {
                if (GUILayout.Button("Create New Rooms"))
                {
                    ChatRoomSettingsEditor.GoToSettings();
                }
            }

            if (!haveRooms)
            {
                EditorGUILayout.HelpBox("No rooms are defined. Click 'Create New Rooms' to configure chat rooms.", MessageType.Warning);
            }
        }
Пример #4
0
        private void RoomsGui(VoiceReceiptTrigger trigger)
        {
            var roomNames = _roomSettings.Names;

            var haveRooms = roomNames.Count > 0;

            if (haveRooms)
            {
                EditorGUILayout.BeginHorizontal();

                var selectedIndex = string.IsNullOrEmpty(trigger.RoomName) ? -1 : roomNames.IndexOf(trigger.RoomName);
                trigger.ChangeWithUndo(
                    "Changed Dissonance Receiver Room",
                    EditorGUILayout.Popup("Chat Room", selectedIndex, roomNames.ToArray()),
                    selectedIndex,
                    a => trigger.RoomName = roomNames[a]
                    );

                if (GUILayout.Button("Config Rooms"))
                {
                    ChatRoomSettingsEditor.GoToSettings();
                }

                EditorGUILayout.EndHorizontal();

                if (string.IsNullOrEmpty(trigger.RoomName))
                {
                    EditorGUILayout.HelpBox("Please select a chat room", MessageType.Warning);
                }
                else if (!roomNames.Contains(trigger.RoomName))
                {
                    EditorGUILayout.HelpBox(string.Format("Room '{0}' is no longer defined in the chat room configuration! \nRe-create the '{0}' room, or select a different room.", trigger.RoomName), MessageType.Warning);
                }
            }
            else
            {
                if (GUILayout.Button("Create New Rooms"))
                {
                    ChatRoomSettingsEditor.GoToSettings();
                }
            }

            if (!haveRooms)
            {
                EditorGUILayout.HelpBox("No rooms are defined. Click 'Create New Rooms' to configure chat rooms.", MessageType.Warning);
            }
        }
        private void RoomsGui([NotNull] VoiceReceiptTrigger trigger)
        {
            var roomNames = _roomSettings.Names;

            var haveRooms = roomNames.Count > 0;

            if (haveRooms)
            {
                EditorGUILayout.BeginHorizontal();

                var roomList  = roomNames;
                var roomIndex = -1;

                if (string.IsNullOrEmpty(trigger.RoomName))
                {
                    EditorGUILayout.LabelField("No room");
                }
                else
                {
                    roomIndex = roomList.IndexOf(trigger.RoomName);
                    if (roomIndex == -1)
                    {
                        roomList = new List <string>(roomList);
                        roomList.Insert(0, trigger.RoomName);
                        roomIndex = 0;
                    }
                }

                trigger.ChangeWithUndo(
                    "Changed Dissonance Receiver Room",
                    EditorGUILayout.Popup(new GUIContent("Chat Room", "The room to receive voice from"), roomIndex, roomList.Select(a => new GUIContent(a)).ToArray()),
                    roomIndex,
                    a => trigger.RoomName = roomNames[a]
                    );

                if (GUILayout.Button("Config Rooms"))
                {
                    ChatRoomSettingsEditor.GoToSettings();
                }

                EditorGUILayout.EndHorizontal();

                if (string.IsNullOrEmpty(trigger.RoomName))
                {
                    EditorGUILayout.HelpBox("No chat room selected", MessageType.Error);
                }
                else if (!roomNames.Contains(trigger.RoomName))
                {
                    EditorGUILayout.HelpBox(string.Format("Room '{0}' is no longer defined in the chat room configuration! \nRe-create the '{0}' room, or select a different room.", trigger.RoomName), MessageType.Warning);
                }
            }
            else
            {
                if (GUILayout.Button("Create New Rooms"))
                {
                    ChatRoomSettingsEditor.GoToSettings();
                }
            }

            if (!haveRooms)
            {
                EditorGUILayout.HelpBox("No rooms are defined. Click 'Create New Rooms' to configure chat rooms.", MessageType.Warning);
            }
        }