public static void DrawTransitions(string title, List <Transitions> transitions, SerializedProperty transitionsProp, ref int count, params string[] stateNames) { EditorGuiUtils.DrawLayoutList(title, transitions, transitionsProp, ref count, createCallback: (p) => { var namesProp = p.FindPropertyRelative("stateNames"); // unity copies the previous content. // so we need to fill the array only the first time. if (namesProp.arraySize >= stateNames.Length) { return; } for (int i = 0; i < stateNames.Length; i++) { namesProp.InsertArrayElementAtIndex(i); namesProp.serializedObject.ApplyModifiedPropertiesWithoutUndo(); string name = stateNames[i]; var elem = namesProp.GetArrayElementAtIndex(i); elem.stringValue = name; } namesProp.serializedObject.ApplyModifiedPropertiesWithoutUndo(); }, drawItemCallback: (item, p) => { TransitionsDrawer.DrawGui(item, p); EditorGUILayout.Separator(); }); }
public void DrawGui(SerializedObject serializedObject, UnityEngine.Object target) { TBetter obj = target as TBetter; var listProp = serializedObject.FindProperty("betterTransitions"); // Transitions EditorGuiUtils.DrawTransitions("Better Transitions", obj.BetterTransitions, listProp, ref count, Transitions.SelectionStateNames); }
public static void DrawLayoutList <T>(string listTitle, List <T> list, SerializedProperty listProp, ref int count, ref bool foldout, Action <SerializedProperty> createCallback, Action <T, SerializedProperty> drawItemCallback) { EditorGuiUtils.DrawLayoutList( listTitle, true, list, listProp, ref count, ref foldout, createCallback, drawItemCallback); }
public override void OnInspectorGUI() { base.OnInspectorGUI(); BetterToggle tgl = target as BetterToggle; helper.DrawGui(serializedObject, tgl); // Toggle Transitions var tgProp = serializedObject.FindProperty("betterToggleTransitions"); EditorGuiUtils.DrawTransitions("Better Toggle Transitions (On / Off)", tgl.BetterToggleTransitions, tgProp, ref toggleTransCount, Transitions.OnOffStateNames); serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { base.OnInspectorGUI(); BetterInputField obj = target as BetterInputField; helper.DrawGui(serializedObject, obj); var prop = serializedObject.FindProperty("additionalPlaceholders"); EditorGuiUtils.DrawLayoutList("Additional Placeholders", obj.AdditionalPlaceholders, prop, ref phCount, createCallback: null, drawItemCallback: (item, p) => { EditorGUILayout.PropertyField(p); serializedObject.ApplyModifiedProperties(); } ); serializedObject.ApplyModifiedProperties(); }