Files
Studio/Assets/NewStudioJYM/Scripts/UI_LoadDataHierarchyItem.cs
2025-05-12 17:37:38 +09:00

55 lines
1.4 KiB
C#

using UnityEngine;
using XRLib.UI;
using TMPro;
using UnityEngine.UI;
using System;
using System.Text;
namespace XED
{
public class UI_LoadDataHierarchyItem : UIBase
{
public DataClass data;
private Button button;
private TextMeshProUGUI DataName;
public Action<DataClass> onClickItem;
public override void AfterAwake()
{
button = GetComponent<Button>();
button.onClick.AddListener(OnClickDataItem);
}
public void SetData(DataClass data)
{
this.data = data;
var dataText = GenerateHierarchyText(data);
DataName.SetText(dataText);
AdjustHeightToFitText();
}
void AdjustHeightToFitText()
{
float preferredHeight = DataName.preferredHeight;
rectTransform.sizeDelta = new Vector2(rectTransform.sizeDelta.x, preferredHeight);
}
private void OnClickDataItem()
{
onClickItem?.Invoke(data);
}
private string GenerateHierarchyText(DataClass data)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine($"<b>{data.name}</b>");
foreach (var field in data.fields)
{
sb.AppendLine($"\t{field.name} : {field.value}");
}
return sb.ToString();
}
}
}