Files
XRLib/Assets/Scripts/SHI/modal/ModelDetailListItem.cs
2025-11-14 19:54:04 +09:00

55 lines
1.7 KiB
C#

#nullable enable
using UnityEngine;
using UVC.UI.Buttons;
using UVC.UI.List.Tree;
namespace SHI.modal
{
public class ModelDetailListItem : TreeListItem
{
/// <summary>
/// 가시성 상태를 표시하는 배경 이미지.
/// </summary>
[SerializeField]
protected ImageToggle visibleToggle;
public override void Init(TreeListItemData data, TreeList control, TreeListDragDropManager dragDropManager)
{
base.Init(data, control, dragDropManager);
if (visibleToggle != null)
{
if (data is ModelDetailListItemData modelData) {
visibleToggle.isOn = modelData.IsVisible;
}
visibleToggle.OnValueChanged.AddListener(isOn =>
{
if (data is ModelDetailListItemData modelData)
{
modelData.IsVisible = isOn;
modelData.OnClickVisibleAction?.Invoke(modelData, isOn);
}
});
}
}
protected override void OnDataChanged(ChangedType changedType, TreeListItemData changedData, int index)
{
if (changedType == ChangedType.TailButtons && changedData is ModelDetailListItemData modelData)
{
if (visibleToggle != null)
{
visibleToggle.isOn = modelData.IsVisible;
}
}
base.OnDataChanged(changedType, changedData, index);
}
protected override void OnDestroy()
{
if (visibleToggle != null) visibleToggle.OnValueChanged.RemoveAllListeners();
base.OnDestroy();
}
}
}