Пример #1
0
        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)
                {
                    if (!trigger.gameObject.GetComponents <Collider>().Any(c => c.isTrigger))
                    {
                        EditorGUILayout.HelpBox("Cannot find any collider triggers attached to this entity.", 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);
            }
        }