버그 수정

This commit is contained in:
logonkhi
2025-09-19 17:30:54 +09:00
parent 9d215d3905
commit 5ccb24d4dc

View File

@@ -117,7 +117,7 @@ namespace UVC.UI
public RectTransform DragArea => dragArea;
public bool IsDragging { private set; get; }
private void Awake()
private void Start()
{
InitializeComponents();
ValidateSetup();
@@ -250,13 +250,10 @@ namespace UVC.UI
{
Vector2 offsetToOriginal = localPointerPosition - originalLocalPointerPosition;
Vector2 newPosition = originalAnchoredPosition + offsetToOriginal;
//Debug.Log($"OnDrag originalAnchoredPosition:{originalAnchoredPosition}, newPosition:{newPosition}");
// 실시간 제약 적용
if (constrainDuringDrag)
{
newPosition = ClampToArea(newPosition);
}
if (constrainDuringDrag) newPosition = ClampToArea(newPosition);
//Debug.Log($"OnDrag2 newPosition:{newPosition}");
dragObject.anchoredPosition = newPosition;
OnDragHandler?.Invoke(newPosition);
}
@@ -279,10 +276,10 @@ namespace UVC.UI
}
// 최종 위치 제약 적용
Vector2 finalPosition = ClampToArea(dragObject.anchoredPosition);
dragObject.anchoredPosition = finalPosition;
//Vector2 finalPosition = ClampToArea(dragObject.anchoredPosition);
//dragObject.anchoredPosition = finalPosition;
OnEndDragHandler?.Invoke(finalPosition);
//OnEndDragHandler?.Invoke(finalPosition);
}
/// <summary>
@@ -303,15 +300,18 @@ namespace UVC.UI
Rect dragObjectRect = dragObject.rect;
Rect dragAreaRect = dragArea.rect;
dragAreaRect.x = 0;
dragAreaRect.y = 0;
// Pivot과 앵커를 고려한 경계 계산
Vector2 pivot = dragObject.pivot;
Vector2 size = dragObjectRect.size;
//아래로 내려갈수록 좌상(0,0), 우하(1,-1)
float leftBoundary = dragAreaRect.xMin + (size.x * pivot.x) + leftPadding;
float rightBoundary = dragAreaRect.xMax - (size.x * (1f - pivot.x)) - rightPadding;
float bottomBoundary = (size.y * pivot.y) + bottomPadding;
float topBoundary = dragAreaRect.height - (size.y * (1f - pivot.y)) - topPadding;
float bottomBoundary = -dragAreaRect.height + (size.y * pivot.y) + bottomPadding;
float topBoundary = -(size.y * (1f - pivot.y)) - topPadding;
position.x = Mathf.Clamp(position.x, leftBoundary, rightBoundary);
position.y = Mathf.Clamp(position.y, bottomBoundary, topBoundary);
@@ -351,16 +351,5 @@ namespace UVC.UI
{
this.enabled = enabled;
}
#if UNITY_EDITOR
private void OnValidate()
{
// 에디터에서 값 변경 시 유효성 검사
if (Application.isPlaying)
{
ValidateSetup();
}
}
#endif
}
}