com.alicizax.unity.ui.exten.../Runtime/UXComponent/Controller/Property/TransformScaleState.cs

45 lines
1.3 KiB
C#
Raw Normal View History

2026-03-11 15:23:44 +08:00
using System;
using UnityEngine;
namespace AlicizaX.UI
{
/// <summary>
/// Transform 缩放状态控制
/// 控制对象的本地缩放
/// </summary>
[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}";
}
}
}