사용자 정보 모달, 드래그 리스트 개발

This commit is contained in:
logonkhi
2025-07-31 18:31:51 +09:00
parent f7befb048c
commit 23da311db0
64 changed files with 5990 additions and 4576 deletions

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UVC.Data.Core;
using UVC.Extention;
using UVC.Factory.Modal;
using UVC.Object3d;
@@ -138,12 +139,12 @@ namespace UVC.Factory.Component
protected DataObject? data;
protected List<string>? dataOrderedMask;
protected DataMask? dataOrderedMask;
/// <summary>
/// 객체 클릭 시 정보창(InfoWindow)에 표시될 데이터의 순서와 항목을 지정하는 마스크입니다.
/// 이 리스트에 포함된 키의 데이터만 순서대로 표시됩니다. null이거나 비어있으면 모든 데이터를 표시합니다.
/// </summary>
public List<string>? DataOrderedMask
public DataMask? DataOrderedMask
{
get => dataOrderedMask;
set
@@ -189,26 +190,26 @@ namespace UVC.Factory.Component
/// `DataOrderedMask`가 설정되어 있으면 해당 순서대로, 그렇지 않으면 모든 데이터를 표시합니다.
/// </remarks>
/// <param name="eventData">포인터 클릭과 관련된 이벤트 데이터입니다.</param>
public void OnPointerClick(PointerEventData eventData)
public virtual void OnPointerClick(PointerEventData eventData)
{
if (data != null && data.Count > 0)
{
Dictionary<string, object> info = new Dictionary<string, object>();
OrderedDictionary<string, object> info = new OrderedDictionary<string, object>();
// dataOrderedMask가 설정되어 있으면 해당 순서대로 정보를 가져옵니다.
if (dataOrderedMask != null && dataOrderedMask.Count > 0)
{
foreach (var key in dataOrderedMask)
foreach (var keyValue in dataOrderedMask)
{
if (data.ContainsKey(key))
if (data.ContainsKey(keyValue.Key))
{
info[key] = data[key]!;
info[keyValue.Value.ToString()] = data[keyValue.Key]!;
}
}
}
else
{
// dataOrderedMask가 설정되어 있지 않으면 모든 데이터를 사용합니다.
info = new Dictionary<string, object>(data!);
info = new OrderedDictionary<string, object>(data!);
}
InfoWindow.Instance.Show(transform, info);
}