using RosettaUI.UIToolkit.Builder; using RosettaUI.UndoSystem; using UnityEngine; using UnityEngine.UIElements; namespace RosettaUI.UIToolkit.UndoSystem { /// /// Undo helper class for BaseField /// public static class UndoUIToolkit { public static void RecordBaseField(string label, BaseField field, TValue oldValue, TValue newValue) { // 対応するFieldBaseElementがあればそちらでUndoを記録する var element = UIToolkitBuilder.Instance.GetElement(field); if (element is FieldBaseElement fieldElement) { Undo.RecordFieldBaseElement(fieldElement, oldValue, newValue); return; } // 無い場合は独自でUndoを記録する Undo.RecordValueChange(label, oldValue, newValue, value => field.value = value); } } }