클래스명 변경 및 설비 클릭 상태일 때 다른 설비 클릭되지 않도록 변경
This commit is contained in:
@@ -6,11 +6,11 @@ namespace UVC.EnglewoodLAB.Data
|
||||
/// <summary>
|
||||
/// 설비 상세 패널 전체 데이터.
|
||||
/// </summary>
|
||||
public class EWLKEquipDetailData
|
||||
public class EWLKManuEquipDetailData
|
||||
{
|
||||
public EWLKEquipBasicInfoData BasicInfo { get; } = new();
|
||||
public EWLKManuEquipBasicInfoData BasicInfo { get; } = new();
|
||||
public EWLKQualityInfoData QualityInfo { get; } = new();
|
||||
public EWLKEquipOperationData OperationInfo { get; } = new();
|
||||
public EWLKManuEquipOperationData OperationInfo { get; } = new();
|
||||
public EWLKMainMixerData MainMixer { get; } = new();
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace UVC.EnglewoodLAB.Data
|
||||
/// <summary>
|
||||
/// 설비 기본 정보 패널 데이터.
|
||||
/// </summary>
|
||||
public class EWLKEquipBasicInfoData
|
||||
public class EWLKManuEquipBasicInfoData
|
||||
{
|
||||
/// <summary>설비명</summary>
|
||||
public string EquipmentName { get; set; } = "-";
|
||||
@@ -83,7 +83,7 @@ namespace UVC.EnglewoodLAB.Data
|
||||
/// <summary>
|
||||
/// 설비 운영 정보 패널 데이터.
|
||||
/// </summary>
|
||||
public class EWLKEquipOperationData
|
||||
public class EWLKManuEquipOperationData
|
||||
{
|
||||
/// <summary>공정 정보</summary>
|
||||
public OperationInfoItem ProcessInfo { get; } = new();
|
||||
@@ -18,7 +18,7 @@ namespace UVC.EnglewoodLAB.Data
|
||||
/// <summary>
|
||||
/// 설비 정보 팝업에 표시할 데이터.
|
||||
/// </summary>
|
||||
public class EWLKEquipInfoData
|
||||
public class EWLKManuEquipInfoData
|
||||
{
|
||||
/// <summary>설비 상태</summary>
|
||||
public EquipmentStatus Status { get; set; } = EquipmentStatus.Running;
|
||||
@@ -11,7 +11,7 @@ namespace UVC.EnglewoodLAB
|
||||
/// 이 컴포넌트를 설비 오브젝트(예: Cube)에 부착하고,
|
||||
/// Inspector에서 UIDocument(DynamicUI)를 연결합니다.
|
||||
/// </summary>
|
||||
public class EWLKEquipInfoTracker : MonoBehaviour
|
||||
public class EWLKManuEquipInfoTracker : MonoBehaviour
|
||||
{
|
||||
[Header("UI")]
|
||||
[Tooltip("팝업을 표시할 UIDocument (DynamicUI 권장)")]
|
||||
@@ -29,8 +29,8 @@ namespace UVC.EnglewoodLAB
|
||||
[SerializeField] private float worldYOffset = 1.0f;
|
||||
|
||||
// ── 내부 상태 ─────────────────────────────────
|
||||
private EWLKEquipInfoPopup? _popup;
|
||||
private EWLKEquipInfoData _data = new();
|
||||
private EWLKManuEquipInfoPopup? _popup;
|
||||
private EWLKManuEquipInfoData _data = new();
|
||||
private Camera? _mainCamera;
|
||||
private VisualElement? _root;
|
||||
private bool _attached;
|
||||
@@ -43,7 +43,7 @@ namespace UVC.EnglewoodLAB
|
||||
|
||||
if (uiDocument == null)
|
||||
{
|
||||
Debug.LogWarning($"[EWLKEquipInfoTracker] {name}: UIDocument가 할당되지 않았습니다.");
|
||||
Debug.LogWarning($"[EWLKManuEquipInfoTracker] {name}: UIDocument가 할당되지 않았습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -108,7 +108,7 @@ namespace UVC.EnglewoodLAB
|
||||
_root = uiDocument?.rootVisualElement;
|
||||
if (_root == null) return;
|
||||
|
||||
_popup = new EWLKEquipInfoPopup();
|
||||
_popup = new EWLKManuEquipInfoPopup();
|
||||
ApplyData();
|
||||
_root.Add(_popup);
|
||||
_attached = true;
|
||||
@@ -136,7 +136,7 @@ namespace UVC.EnglewoodLAB
|
||||
/// <summary>
|
||||
/// 외부에서 설비 데이터를 업데이트합니다.
|
||||
/// </summary>
|
||||
public void UpdateData(EWLKEquipInfoData data)
|
||||
public void UpdateData(EWLKManuEquipInfoData data)
|
||||
{
|
||||
_data = data;
|
||||
_popup?.SetData(data);
|
||||
@@ -12,7 +12,7 @@ namespace UVC.EnglewoodLAB
|
||||
/// 선택 시 파란 아웃라인을 표시하고, 선택 해제 시 모두 제거합니다.
|
||||
/// </summary>
|
||||
[RequireComponent(typeof(Collider))]
|
||||
public class EWLKEquipSelectHandler : MonoBehaviour
|
||||
public class EWLKManuEquipSelectHandler : MonoBehaviour
|
||||
{
|
||||
[Header("UI")]
|
||||
[Tooltip("패널을 표시할 UIDocument (DynamicUI 권장)")]
|
||||
@@ -25,9 +25,13 @@ namespace UVC.EnglewoodLAB
|
||||
[Tooltip("아웃라인 색상")]
|
||||
[SerializeField] private Color outlineColor = new(0.2f, 0.5f, 1f, 0.4f);
|
||||
|
||||
// ── 상세 패널 활성 상태 (다른 핸들러에서 클릭 차단용) ──
|
||||
/// <summary>상세 패널이 열려 있는지 여부</summary>
|
||||
public static bool IsPanelActive { get; private set; }
|
||||
|
||||
// ── 내부 상태 ─────────────────────────────────
|
||||
private EWLKEquipDetailPanel? _panel;
|
||||
private EWLKEquipDetailData _data = new();
|
||||
private EWLKManuEquipDetailPanel? _panel;
|
||||
private EWLKManuEquipDetailData _data = new();
|
||||
private GameObject? _outlineObject;
|
||||
private bool _selected;
|
||||
private VisualElement? _root;
|
||||
@@ -37,7 +41,7 @@ namespace UVC.EnglewoodLAB
|
||||
/// <summary>
|
||||
/// 외부에서 표시할 데이터를 설정합니다.
|
||||
/// </summary>
|
||||
public void SetData(EWLKEquipDetailData data)
|
||||
public void SetData(EWLKManuEquipDetailData data)
|
||||
{
|
||||
_data = data;
|
||||
_panel?.SetData(data);
|
||||
@@ -57,6 +61,7 @@ namespace UVC.EnglewoodLAB
|
||||
private void OnMouseDown()
|
||||
{
|
||||
if (_selected) return;
|
||||
if (EWLKPackEquipInfoTracker.IsPanelActive) return;
|
||||
Select();
|
||||
}
|
||||
|
||||
@@ -67,6 +72,7 @@ namespace UVC.EnglewoodLAB
|
||||
{
|
||||
if (_selected) return;
|
||||
_selected = true;
|
||||
IsPanelActive = true;
|
||||
|
||||
ShowOutline();
|
||||
ShowPanel();
|
||||
@@ -77,6 +83,7 @@ namespace UVC.EnglewoodLAB
|
||||
{
|
||||
if (!_selected) return;
|
||||
_selected = false;
|
||||
IsPanelActive = false;
|
||||
|
||||
HideOutline();
|
||||
HidePanel();
|
||||
@@ -140,14 +147,14 @@ namespace UVC.EnglewoodLAB
|
||||
{
|
||||
if (uiDocument == null)
|
||||
{
|
||||
Debug.LogWarning($"[EWLKEquipSelectHandler] {name}: UIDocument가 할당되지 않았습니다.");
|
||||
Debug.LogWarning($"[EWLKManuEquipSelectHandler] {name}: UIDocument가 할당되지 않았습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
_root = uiDocument.rootVisualElement;
|
||||
if (_root == null) return;
|
||||
|
||||
_panel = new EWLKEquipDetailPanel();
|
||||
_panel = new EWLKManuEquipDetailPanel();
|
||||
_panel.SetData(_data);
|
||||
_panel.OnDeselectClicked += Deselect;
|
||||
_root.Add(_panel);
|
||||
@@ -12,9 +12,9 @@ namespace UVC.EnglewoodLAB.UIToolkit
|
||||
/// DynamicUI rootVisualElement에 추가하여 사용합니다.
|
||||
/// </summary>
|
||||
[UxmlElement]
|
||||
public partial class EWLKEquipDetailPanel : VisualElement, IDisposable
|
||||
public partial class EWLKManuEquipDetailPanel : VisualElement, IDisposable
|
||||
{
|
||||
private const string UssPath = "EWLK/UIToolkit/Main/EWLKEquipDetailPanelUss";
|
||||
private const string UssPath = "EWLK/UIToolkit/Main/EWLKManuEquipDetailPanelUss";
|
||||
|
||||
/// <summary>선택 해제 버튼 클릭 시 호출</summary>
|
||||
public event Action? OnDeselectClicked;
|
||||
@@ -64,7 +64,7 @@ namespace UVC.EnglewoodLAB.UIToolkit
|
||||
|
||||
// ────────────────────────────────────────────────
|
||||
|
||||
public EWLKEquipDetailPanel()
|
||||
public EWLKManuEquipDetailPanel()
|
||||
{
|
||||
var uss = Resources.Load<StyleSheet>(UssPath);
|
||||
if (uss != null) styleSheets.Add(uss);
|
||||
@@ -168,7 +168,7 @@ namespace UVC.EnglewoodLAB.UIToolkit
|
||||
Add(deselectBtn);
|
||||
|
||||
// 기본 데이터로 초기화
|
||||
SetData(new EWLKEquipDetailData());
|
||||
SetData(new EWLKManuEquipDetailData());
|
||||
}
|
||||
|
||||
// ── 공개 API ────────────────────────────────────────
|
||||
@@ -176,7 +176,7 @@ namespace UVC.EnglewoodLAB.UIToolkit
|
||||
/// <summary>
|
||||
/// 데이터를 바인딩합니다.
|
||||
/// </summary>
|
||||
public void SetData(EWLKEquipDetailData data)
|
||||
public void SetData(EWLKManuEquipDetailData data)
|
||||
{
|
||||
// 설비 기본 정보
|
||||
_equipNameVal.text = data.BasicInfo.EquipmentName;
|
||||
@@ -10,9 +10,9 @@ namespace UVC.EnglewoodLAB.UIToolkit
|
||||
/// 상태 원(초록/노랑/회색) + 설비명으로 구성됩니다.
|
||||
/// </summary>
|
||||
[UxmlElement]
|
||||
public partial class EWLKEquipInfoPopup : VisualElement
|
||||
public partial class EWLKManuEquipInfoPopup : VisualElement
|
||||
{
|
||||
private const string UssPath = "EWLK/UIToolkit/Main/EWLKEquipInfoPopupUss";
|
||||
private const string UssPath = "EWLK/UIToolkit/Main/EWLKManuEquipInfoPopupUss";
|
||||
|
||||
private static readonly string ClassRoot = "ewlk-equip-popup";
|
||||
private static readonly string ClassIndicator = "ewlk-equip-popup__indicator";
|
||||
@@ -24,7 +24,7 @@ namespace UVC.EnglewoodLAB.UIToolkit
|
||||
private readonly VisualElement _indicator;
|
||||
private readonly Label _nameLabel;
|
||||
|
||||
public EWLKEquipInfoPopup()
|
||||
public EWLKManuEquipInfoPopup()
|
||||
{
|
||||
var uss = Resources.Load<StyleSheet>(UssPath);
|
||||
if (uss != null) styleSheets.Add(uss);
|
||||
@@ -48,7 +48,7 @@ namespace UVC.EnglewoodLAB.UIToolkit
|
||||
/// <summary>
|
||||
/// 데이터를 바인딩합니다.
|
||||
/// </summary>
|
||||
public void SetData(EWLKEquipInfoData data)
|
||||
public void SetData(EWLKManuEquipInfoData data)
|
||||
{
|
||||
_nameLabel.text = data.EquipmentName;
|
||||
|
||||
Reference in New Issue
Block a user