55 lines
1.7 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|