private void DrawFieldItem(State state, FieldItem fieldItem, Action repaintAction) { EditorGUI.indentLevel++; Undo.RecordObject(fieldItem, "Edit group connection title"); EditorGUILayout.BeginHorizontal(); fieldItem.title = SpellCheckHintsContent.DrawTextField( $"{fieldItem.GetInstanceID()}_{nameof(fieldItem.title)}", "Title", fieldItem.title, repaintAction, n => { fieldItem.title = n; }); //fieldItem.title = EditorGUILayout.TextField("Title:", fieldItem.title); if (Buttons.Delete()) { Undo.DestroyObjectImmediate(fieldItem); } EditorGUILayout.EndHorizontal(); RenderPositionVertexes(state, fieldItem); EditorGUILayout.BeginHorizontal(); GUILayout.Space(EditorGUI.indentLevel * 15); fieldItem.attachmentsTabIndex = GUILayout.Toolbar(fieldItem.attachmentsTabIndex, new string[] { "Images", "Video", "Text", "Audio" }); EditorGUILayout.EndHorizontal(); var serializedObject = new SerializedObject(fieldItem); switch (fieldItem.attachmentsTabIndex) { case 0: var imagesProperty = serializedObject.FindProperty(nameof(fieldItem.images)); EditorGUILayout.PropertyField(imagesProperty); break; case 1: var videosProperty = serializedObject.FindProperty(nameof(fieldItem.videos)); EditorGUILayout.PropertyField(videosProperty, new GUIContent("ONLY FIRST VIDEO WILL BE USED! (now)")); break; case 2: var textProperty = serializedObject.FindProperty(nameof(fieldItem.text)); EditorGUILayout.PropertyField(textProperty); break; case 3: var audiosProperty = serializedObject.FindProperty(nameof(fieldItem.audios)); EditorGUILayout.PropertyField(audiosProperty, new GUIContent("ONLY FIRST AUDIO WILL BE USED! (now)")); break; default: break; } serializedObject.ApplyModifiedProperties(); EditorGUI.indentLevel--; }
public static string GetExportedId(this FieldItem fieldItem) { return("field_item_" + fieldItem.GetInstanceID()); }