#nullable enable using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; namespace UVC.UI.Menu { /// /// UI 요소에 붙여서 왼쪽 또는 오른쪽 클릭 시 컨텍스트 메뉴를 표시하는 역할을 합니다. /// IPointerClickHandler 인터페이스를 구현하여 클릭 이벤트를 감지합니다. /// public class ContextMenuTrigger : MonoBehaviour, IPointerClickHandler { /// /// 인스펙터에서 이 트리거에 연결할 메뉴 항목들을 설정합니다. /// [Tooltip("이 트리거가 표시할 컨텍스트 메뉴 항목 리스트입니다.")] public List menuItems = new List(); /// /// 포인터(마우스/터치)가 이 UI 요소 위에서 클릭되었을 때 호출됩니다. /// /// 클릭 이벤트에 대한 데이터입니다. public void OnPointerClick(PointerEventData eventData) { // 왼쪽 클릭 또는 오른쪽 클릭 시 메뉴를 표시합니다. if (eventData.button == PointerEventData.InputButton.Left || eventData.button == PointerEventData.InputButton.Right) { // ContextMenuManager 싱글톤 인스턴스를 통해 메뉴를 표시하도록 요청합니다. // 메뉴 항목 데이터와 현재 마우스 위치를 전달합니다. ContextMenuManager.Instance.ShowMenu(menuItems, eventData.position); } } } }