using System; using UnityEngine; namespace AlicizaX.UI { /// /// Transform 缩放状态控制 /// 控制对象的本地缩放 /// [Serializable] [ControlerStateName("Transform/Scale")] [ControlerStateAttachType(true)] public class TransformScaleState : ControllerStateBase { [SerializeField] private Vector3 _scale = Vector3.one; [HideInInspector] [SerializeField] private Vector3 _defaultScale; public override void Init(UXControllerStateRecorder recorder) { if (recorder != null && recorder.transform != null) { _defaultScale = recorder.transform.localScale; } } public override void Execute(UXControllerStateRecorder recorder, int entryIndex, int selectionIndex) { if (recorder != null && recorder.transform != null) { recorder.transform.localScale = (entryIndex == selectionIndex) ? _scale : _defaultScale; } } public override bool Valid(UXControllerStateRecorder recorder) { return recorder != null && recorder.transform != null; } public override string GetDescription() { return $"匹配时: 缩放={_scale}, 默认={_defaultScale}"; } } }