mouse event 처리 중
This commit is contained in:
@@ -63,6 +63,7 @@ namespace UVC.UI.Tooltip
|
||||
|
||||
private Coroutine _showTooltipCoroutine; // 툴팁 표시 지연을 위한 코루틴 참조
|
||||
private const float TooltipDelay = 0.5f; // 툴팁 표시까지의 지연 시간 (초 단위)
|
||||
private const float MouseMoveThreshold = 5f; // 마우스 이동 감지 임계값 (픽셀 단위)
|
||||
|
||||
/// <summary>
|
||||
/// 마우스 포인터가 이 UI 요소의 영역 안으로 들어왔을 때 호출됩니다. (IPointerEnterHandler 인터페이스 구현)
|
||||
@@ -90,12 +91,36 @@ namespace UVC.UI.Tooltip
|
||||
/// 지정된 시간(TooltipDelay)만큼 대기한 후, OnPointerEnterAction을 호출하여 툴팁 표시를 요청하는 코루틴입니다.
|
||||
/// </summary>
|
||||
/// <param name="tooltip">표시할 툴팁 내용 또는 다국어 키입니다.</param>
|
||||
/// <param name="mousePosition">현재 마우스 포인터의 화면 좌표입니다.</param>
|
||||
private IEnumerator ShowTooltipAfterDelayCoroutine(string tooltip, Vector3 mousePosition)
|
||||
/// <param name="initialMousePosition">현재 마우스 포인터의 화면 좌표입니다.</param>
|
||||
private IEnumerator ShowTooltipAfterDelayCoroutine(string tooltip, Vector3 initialMousePosition)
|
||||
{
|
||||
yield return new WaitForSeconds(TooltipDelay); // 지정된 시간만큼 대기
|
||||
float stillTime = 0f; // 마우스가 움직이지 않은 시간
|
||||
Vector3 lastMousePosition = initialMousePosition;
|
||||
|
||||
while (stillTime < TooltipDelay)
|
||||
{
|
||||
// 현재 마우스 위치와 마지막 기록된 위치 간의 거리 계산
|
||||
float distance = Vector3.Distance(Input.mousePosition, lastMousePosition);
|
||||
|
||||
// 거리가 임계값을 초과하면 마우스가 움직인 것으로 간주
|
||||
if (distance > MouseMoveThreshold)
|
||||
{
|
||||
// 마우스가 움직였으므로 정지 시간을 리셋
|
||||
stillTime = 0f;
|
||||
lastMousePosition = Input.mousePosition;
|
||||
}
|
||||
else
|
||||
{
|
||||
// 마우스가 거의 움직이지 않으면 정지 시간 증가
|
||||
stillTime += Time.unscaledDeltaTime;
|
||||
}
|
||||
|
||||
yield return null; // 다음 프레임까지 대기
|
||||
}
|
||||
|
||||
// TooltipDelay 시간 동안 마우스가 거의 움직이지 않았으면 툴팁 표시
|
||||
_showTooltipCoroutine = null; // 코루틴 완료 후 참조 null 처리
|
||||
OnPointerEnterAction?.Invoke(tooltip, mousePosition); // 연결된 액션 호출 (TooltipManager.HandlePointerEnter)
|
||||
OnPointerEnterAction?.Invoke(tooltip, Input.mousePosition); // 현재 마우스 위치 사용
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user