Reset all values to the defaults for new added elements Overwrite what shall be done when an element is added via the + Height += EditorGUIUtility.singleLineHeight If (string.IsNullOrWhiteSpace(element.stringValue) || availableIDs.Count(item => string.Equals(item, element.stringValue)) > 1) Var height = EditorGUI.GetPropertyHeight(element) Var availableIDs = dialogue.CharactersList Var element = CharactersList.GetArrayElementAtIndex(index)
dependent whether a HelpBox is displayed or not Get the correct display height of elements in the list Rect.y += EditorGUI.GetPropertyHeight(element) ĮditorGUI.HelpBox(new Rect(rect.x, rect.y, rect.width, EditorGUIUtility.singleLineHeight), 'Duplicate! ID has to be unique!', MessageType.Error ) Public enum Characters else if (availableIDs.Count(item => string.Equals(item, element.stringValue)) > 1) needed to make ScriptableObject out of this class Each object represents a line of dialogue.
I have a DialogueElement class and then I create a list of DialogueElement objects.
I'm making a Unity C# script that is meant to be used by other people as a character dialog tool to write out conversations between multiple game characters.