using System; using System.Globalization; using TMPro; using UnityEngine; using UnityEngine.UI; namespace AibisDream { public class SliderItem : AbsFormItem { public override FieldType FieldType => FieldType.Slider; #region 索引 private Slider _slider; private TMP_Text _sliderText; #endregion protected override void InitField() { // 初始化索引 _slider = GetComponentInChildren(); _sliderText = _slider.GetComponentInChildren(true); // 绑定事件 _slider.onValueChanged.AddListener(OnSliderChanged); } private void OnSliderChanged(float value) { // 更新数字显示 _sliderText.text = Mathf.RoundToInt(value * 100).ToString(); // 触发修改事件 OnValueChanged.Invoke(prop, value.ToString("F2")); } public override void SetValue(string value) { if (float.TryParse(value, NumberStyles.Float, CultureInfo.InvariantCulture, out var floatValue)) { _slider.value = floatValue; _sliderText.text = Mathf.RoundToInt(floatValue * 100).ToString(); } else { Debug.LogError($"SliderItem: 解析数值{value}失败"); } } } }