From 3daa042553f634cbe792c5a593c5f43784f26b35 Mon Sep 17 00:00:00 2001 From: jmaniuvc Date: Mon, 24 Feb 2025 10:08:50 +0900 Subject: [PATCH] =?UTF-8?q?=EC=BB=A4=EC=84=9C=20=EC=95=84=EC=9D=B4?= =?UTF-8?q?=EC=BD=98=EC=9D=B4=20=EC=B4=88=EA=B8=B0=ED=99=94=20=EB=90=98?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EB=8A=94=20=EB=B2=84=EA=B7=B8=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/XED/UI/Tag/UI_GUIWindow.cs | 40 +++++++++++++++-------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/Assets/Scripts/XED/UI/Tag/UI_GUIWindow.cs b/Assets/Scripts/XED/UI/Tag/UI_GUIWindow.cs index 56ea8e87..a66d46d1 100644 --- a/Assets/Scripts/XED/UI/Tag/UI_GUIWindow.cs +++ b/Assets/Scripts/XED/UI/Tag/UI_GUIWindow.cs @@ -53,6 +53,8 @@ namespace XED.UI [SerializeField] Texture2D cursor_DownRight; + Vector2 mousePos; + Direction direction; Vector2 initialMousePos; @@ -78,31 +80,34 @@ namespace XED.UI private void OnEnable() { - state = GUIState.None; + InitializeState(); transform.SetAsLastSibling(); } + private void OnDisable() + { + InitializeState(); + } + private void Update() { bool mouseDown = Input.GetMouseButtonDown(0); bool mouseUp = Input.GetMouseButtonUp(0); - Vector2 mousePos = Input.mousePosition; + mousePos = Input.mousePosition; if (mouseUp) { - state = GUIState.None; - SetPanelPivot(initialPivot); + InitializeState(); } - ChangeMouseCursor(mousePos); + ChangeMouseCursor(); - Direction handleDirection = GetHandleDirection(mousePos); + Direction handleDirection = GetHandleDirection(); if (mouseDown && handleDirection != Direction.None) { SetResizeState(handleDirection); } - - if (mouseDown && IsHeaderRange(mousePos)) + else if (mouseDown && IsRectContainsMouse(header)) { SetMoveState(); } @@ -118,18 +123,18 @@ namespace XED.UI } } - bool IsHeaderRange(Vector2 pos) + bool IsRectContainsMouse(RectTransform range) { Vector2 localPoint; - RectTransformUtility.ScreenPointToLocalPointInRectangle(header, pos, null, out localPoint); + RectTransformUtility.ScreenPointToLocalPointInRectangle(range, mousePos, null, out localPoint); return header.rect.Contains(localPoint); } - Direction GetHandleDirection(Vector2 pos) + Direction GetHandleDirection() { Vector2 localPoint; - RectTransformUtility.ScreenPointToLocalPointInRectangle(rect, pos, null, out localPoint); + RectTransformUtility.ScreenPointToLocalPointInRectangle(rect, mousePos, null, out localPoint); if (!rect.rect.Contains(localPoint)) return Direction.None; @@ -279,12 +284,12 @@ namespace XED.UI rect.localPosition -= deltaPosition; } - public void ChangeMouseCursor(Vector2 pos) + public void ChangeMouseCursor() { if (state == GUIState.Resize) return; - switch (GetHandleDirection(pos)) + switch (GetHandleDirection()) { case Direction.Up: ChangeCursor(cursor_Up); @@ -327,5 +332,12 @@ namespace XED.UI Cursor.SetCursor(cursorTexture, hotspot, CursorMode.Auto); } + + void InitializeState() + { + state = GUIState.None; + SetPanelPivot(initialPivot); + ChangeCursor(null); + } } }