Files
XRLib/Assets/Scripts/SHI/modal/ModelDetailView.cs
2025-11-12 16:48:34 +09:00

50 lines
1.6 KiB
C#

#nullable enable
using System;
using UnityEngine;
using UVC.UI.List.Tree;
namespace SHI.modal
{
public class ModelDetailView: MonoBehaviour
{
/// <summary>
/// 모델 뷰 내에서 항목이 선택되었을 때 알림.
/// 외부에서 구독하여 리스트/차트를 동기화합니다.
/// </summary>
public Action<TreeListItemData>? OnItemSelected;
private TreeListItemData? _focused;
/// <summary>
/// 트리 아이템에 해당하는 모델 요소를 강조하거나 카메라를 이동합니다.
/// 실제 구현은 프로젝트 요구에 맞게 교체하세요.
/// </summary>
public void FocusItem(TreeListItemData data)
{
if (data == null) return;
_focused = data;
// TODO: 실제 GLTF/모델에서 data에 해당하는 노드를 찾아 강조/프레임 인
// 디버그 표시로 대체
Debug.Log($"ModelDetailView.FocusItem: {data.Name}");
}
/// <summary>
/// 주어진 이름에 해당하는 항목을 강조합니다.
/// </summary>
public void FocusItemName(string name)
{
if (string.IsNullOrEmpty(name)) return;
var data = new TreeListItemData(name);
FocusItem(data);
}
/// <summary>
/// 모델에서 사용자가 어떤 요소를 클릭했을 때 외부로 통지하려면 이 메서드를 호출하세요.
/// </summary>
public void RaiseSelected(TreeListItemData data)
{
OnItemSelected?.Invoke(data);
}
}
}