Files
XRLib/Assets/Scripts/UVC/Factory/Alarm/SingleAlarmIcon.cs

58 lines
1.8 KiB
C#
Raw Normal View History

2025-06-27 17:50:23 +09:00
using TMPro;
using UnityEngine;
using UVC.Data;
using UVC.Util;
2025-06-23 20:06:15 +09:00
namespace UVC.Factory.Alarm
{
public class SingleAlarmIcon : MonoBehaviour
{
2025-06-27 17:50:23 +09:00
[Tooltip("알람 내용을 표시하는 텍스트입니다.")]
[SerializeField] private TextMeshProUGUI text;
private DataObject data;
2025-06-23 20:06:15 +09:00
private Transform equipmentTransform;
2025-06-27 17:50:23 +09:00
public void SetData(DataObject newData, Transform equipment)
2025-06-23 20:06:15 +09:00
{
2025-06-27 17:50:23 +09:00
if (data == null)
{
data = newData;
}
else
{
foreach (var keyValue in newData)
{
if (data.ContainsKey(keyValue.Key))
{
data[keyValue.Key] = keyValue.Value;
}
}
}
2025-06-23 20:06:15 +09:00
equipmentTransform = equipment;
2025-06-27 17:50:23 +09:00
if (text != null)
{
string combinedString = string.Empty;
foreach (var kvp in data)
{
// <indent> 태그를 사용하여 줄바꿈 시에도 정렬이 유지되도록 합니다.
combinedString += $"{kvp.Key}<pos=40%><indent=40%>{kvp.Value ?? "null"}</indent>\n";
}
combinedString = combinedString.TrimEnd('\n'); // 마지막 줄바꿈 제거
text.text = combinedString;
}
2025-06-23 20:06:15 +09:00
}
public void OnPointerClick()
{
// 클릭 시 해당 설비로 카메라 포커스
CameraController.Instance.FocusOnTarget(equipmentTransform, 3.0f);
2025-06-27 17:50:23 +09:00
Debug.Log($"알람 [{data.GetString("MESSAGE")}]이 발생한 설비로 이동합니다.");
2025-06-23 20:06:15 +09:00
// 여기서 알람 상세정보 패널을 띄워도 좋음
}
}
}