using UnityEngine; using UnityEngine.UIElements; using UnityEditor.UIElements; using System.Collections.Generic; namespace UnityEditor.VFX.UI { class VFXFlipBookField : VFXControl { VFXLabeledField m_X; VFXLabeledField m_Y; void CreateTextField() { m_X = new VFXLabeledField("X"); m_Y = new VFXLabeledField("Y"); m_X.control.AddToClassList("fieldContainer"); m_Y.control.AddToClassList("fieldContainer"); m_X.AddToClassList("fieldContainer"); m_Y.AddToClassList("fieldContainer"); m_X.RegisterCallback>(OnXValueChanged); m_Y.RegisterCallback>(OnYValueChanged); } void OnXValueChanged(ChangeEvent e) { FlipBook newValue = value; newValue.x = (int)m_X.value; SetValueAndNotify(newValue); } void OnYValueChanged(ChangeEvent e) { FlipBook newValue = value; newValue.y = (int)m_Y.value; SetValueAndNotify(newValue); } public override bool indeterminate { get { return m_X.indeterminate; } set { m_X.indeterminate = value; m_Y.indeterminate = value; } } public VFXFlipBookField() { CreateTextField(); style.flexDirection = FlexDirection.Row; Add(m_X); Add(m_Y); } protected override void ValueToGUI(bool force) { if (!m_X.control.HasFocus() || force) m_X.value = value.x; if (!m_Y.control.HasFocus() || force) m_Y.value = value.y; } } }