ComponentList 완료, Context 메뉴 추가
This commit is contained in:
35
Assets/Scripts/UVC/UI/Menu/ContextMenuTrigger.cs
Normal file
35
Assets/Scripts/UVC/UI/Menu/ContextMenuTrigger.cs
Normal file
@@ -0,0 +1,35 @@
|
||||
#nullable enable
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
|
||||
namespace UVC.UI.Menu
|
||||
{
|
||||
/// <summary>
|
||||
/// UI 요소에 붙여서 왼쪽 또는 오른쪽 클릭 시 컨텍스트 메뉴를 표시하는 역할을 합니다.
|
||||
/// IPointerClickHandler 인터페이스를 구현하여 클릭 이벤트를 감지합니다.
|
||||
/// </summary>
|
||||
public class ContextMenuTrigger : MonoBehaviour, IPointerClickHandler
|
||||
{
|
||||
/// <summary>
|
||||
/// 인스펙터에서 이 트리거에 연결할 메뉴 항목들을 설정합니다.
|
||||
/// </summary>
|
||||
[Tooltip("이 트리거가 표시할 컨텍스트 메뉴 항목 리스트입니다.")]
|
||||
public List<ContextMenuItemData> menuItems = new List<ContextMenuItemData>();
|
||||
|
||||
/// <summary>
|
||||
/// 포인터(마우스/터치)가 이 UI 요소 위에서 클릭되었을 때 호출됩니다.
|
||||
/// </summary>
|
||||
/// <param name="eventData">클릭 이벤트에 대한 데이터입니다.</param>
|
||||
public void OnPointerClick(PointerEventData eventData)
|
||||
{
|
||||
// 왼쪽 클릭 또는 오른쪽 클릭 시 메뉴를 표시합니다.
|
||||
if (eventData.button == PointerEventData.InputButton.Left || eventData.button == PointerEventData.InputButton.Right)
|
||||
{
|
||||
// ContextMenuManager 싱글톤 인스턴스를 통해 메뉴를 표시하도록 요청합니다.
|
||||
// 메뉴 항목 데이터와 현재 마우스 위치를 전달합니다.
|
||||
ContextMenuManager.Instance.ShowMenu(menuItems, eventData.position);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user