using UnityEditor; using UnityEngine; using UnityEvent = UnityEngine.Event; namespace Unity.VisualScripting { public static class BoltGUI { private static UnityEvent e => UnityEvent.current; public static float GetVariableFieldHeight(GUIContent label, string value, ActionDirection direction) { return EditorGUIUtility.singleLineHeight; } public static string VariableField(Rect position, GUIContent label, string value, ActionDirection direction) { position = EditorGUI.PrefixLabel(position, label); var style = direction != ActionDirection.Any ? BoltStyles.variableFieldWithDirectionIndicator : BoltStyles.variableFieldWithoutDirectionIndicator; value = EditorGUI.TextField(position, GUIContent.none, value, style); var iconPosition = new Rect ( position.x + 3, position.y + 2, 12, 12 ); GUI.DrawTexture(iconPosition, BoltCore.Icons.variable?[IconSize.Small]); if (direction != ActionDirection.Any) { var arrowPosition = new Rect ( iconPosition.xMax + (direction == ActionDirection.Get ? 12 : -2), position.y + 2, 12 * (direction == ActionDirection.Get ? -1 : 1), 12 ); if (e.type == EventType.Repaint) { BoltStyles.variableFieldDirectionIndicator.Draw(arrowPosition, false, false, false, false); } } return value; } } }