From a6231dc36574d28043927c274ab397cefbbfa541 Mon Sep 17 00:00:00 2001 From: jmaniuvc Date: Wed, 19 Mar 2025 12:26:23 +0900 Subject: [PATCH] =?UTF-8?q?Header=20=EA=B0=80=EB=A0=A4=EC=A0=B8=EB=8F=84?= =?UTF-8?q?=20=EC=9E=85=EB=A0=A5=20=EB=B0=9B=EB=8A=94=20=EB=B2=84=EA=B7=B8?= =?UTF-8?q?=20=EC=88=98=EC=A0=95=20->=20IPointer=EB=A1=9C=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Image/GUIWindows.meta | 5 -- Assets/Prefabs/UI/Panel_PropertyViewer.prefab | 31 ++++--- Assets/Resources/Images.meta | 8 ++ .../Images}/cursor_diag_a.png | Bin .../Images}/cursor_diag_a.png.meta | 0 .../Images}/cursor_diag_b.png | Bin .../Images}/cursor_diag_b.png.meta | 0 .../Images}/cursor_horizontal.png | Bin .../Images}/cursor_horizontal.png.meta | 0 .../Images}/cursor_vertical.png | Bin .../Images}/cursor_vertical.png.meta | 0 .../Scripts/Studio/Managers/CursorManager.cs | 79 ++++++++++++++++++ .../Studio/Managers/CursorManager.cs.meta | 2 + Assets/Scripts/Studio/UI/Tag/UI_GUIWindow.cs | 39 +++------ .../Studio/UI/Tag/UI_GUIWindowHeader.cs | 44 ++++++++++ .../Studio/UI/Tag/UI_GUIWindowHeader.cs.meta | 2 + 16 files changed, 166 insertions(+), 44 deletions(-) delete mode 100644 Assets/Image/GUIWindows.meta create mode 100644 Assets/Resources/Images.meta rename Assets/{Image/GUIWindows => Resources/Images}/cursor_diag_a.png (100%) rename Assets/{Image/GUIWindows => Resources/Images}/cursor_diag_a.png.meta (100%) rename Assets/{Image/GUIWindows => Resources/Images}/cursor_diag_b.png (100%) rename Assets/{Image/GUIWindows => Resources/Images}/cursor_diag_b.png.meta (100%) rename Assets/{Image/GUIWindows => Resources/Images}/cursor_horizontal.png (100%) rename Assets/{Image/GUIWindows => Resources/Images}/cursor_horizontal.png.meta (100%) rename Assets/{Image/GUIWindows => Resources/Images}/cursor_vertical.png (100%) rename Assets/{Image/GUIWindows => Resources/Images}/cursor_vertical.png.meta (100%) create mode 100644 Assets/Scripts/Studio/Managers/CursorManager.cs create mode 100644 Assets/Scripts/Studio/Managers/CursorManager.cs.meta create mode 100644 Assets/Scripts/Studio/UI/Tag/UI_GUIWindowHeader.cs create mode 100644 Assets/Scripts/Studio/UI/Tag/UI_GUIWindowHeader.cs.meta diff --git a/Assets/Image/GUIWindows.meta b/Assets/Image/GUIWindows.meta deleted file mode 100644 index fea74c98..00000000 --- a/Assets/Image/GUIWindows.meta +++ /dev/null @@ -1,5 +0,0 @@ -fileFormatVersion: 2 -guid: acc4b1e5f93cd4a4aa6d3bd4079f0edd -folderAsset: yes -DefaultImporter: - userData: diff --git a/Assets/Prefabs/UI/Panel_PropertyViewer.prefab b/Assets/Prefabs/UI/Panel_PropertyViewer.prefab index 91b0837d..10865aa6 100644 --- a/Assets/Prefabs/UI/Panel_PropertyViewer.prefab +++ b/Assets/Prefabs/UI/Panel_PropertyViewer.prefab @@ -47,7 +47,7 @@ GameObject: - component: {fileID: 9204995643987852086} - component: {fileID: 209865376421846872} - component: {fileID: 2793802434066311975} - - component: {fileID: 2197936757255736108} + - component: {fileID: 6645463022349938702} m_Layer: 0 m_Name: Panel_PropertyViewer m_TagString: Untagged @@ -97,7 +97,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: fb1e19639613a2047b9d9e30dbbc4bda, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!114 &2197936757255736108 +--- !u!114 &6645463022349938702 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -109,16 +109,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: f9c6f8c6f0c462a4ab09d615c0d0db6c, type: 3} m_Name: m_EditorClassIdentifier: - header: {fileID: 6397375499865491079} - cursor_Up: {fileID: 2800000, guid: 40a8ef17dc9780c4085eb2001e1c9ac1, type: 3} - cursor_Down: {fileID: 2800000, guid: 40a8ef17dc9780c4085eb2001e1c9ac1, type: 3} - cursor_Left: {fileID: 2800000, guid: 5704ce039ab9a4d41bce815832591a2f, type: 3} - cursor_Right: {fileID: 2800000, guid: 5704ce039ab9a4d41bce815832591a2f, type: 3} - cursor_UpLeft: {fileID: 2800000, guid: 5b69212126b91114ea8f0a926d77c519, type: 3} - cursor_UpRight: {fileID: 2800000, guid: 2b62059c6b03f004db5a180b61188820, type: 3} - cursor_DownLeft: {fileID: 2800000, guid: 2b62059c6b03f004db5a180b61188820, type: 3} - cursor_DownRight: {fileID: 2800000, guid: 5b69212126b91114ea8f0a926d77c519, type: 3} - handleThickness: 20 + header: {fileID: 0} + handleThickness: 5 minWidth: 100 minHeight: 100 --- !u!1 &2890558069500370452 @@ -813,6 +805,7 @@ GameObject: - component: {fileID: 6397375499865491079} - component: {fileID: 5628262866029505794} - component: {fileID: 6358404172700766806} + - component: {fileID: 6294065871480346027} m_Layer: 0 m_Name: header m_TagString: Untagged @@ -863,7 +856,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.6399964, g: 0.7080321, b: 0.8867924, a: 1} - m_RaycastTarget: 0 + m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: @@ -879,6 +872,18 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!114 &6294065871480346027 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9159401479681750991} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fa81ed666c3432441a47113a8812fc7c, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &9199202964201904026 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Resources/Images.meta b/Assets/Resources/Images.meta new file mode 100644 index 00000000..724130ea --- /dev/null +++ b/Assets/Resources/Images.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bf13f4beefc9b5a4d97fcce1a2e1dafa +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Image/GUIWindows/cursor_diag_a.png b/Assets/Resources/Images/cursor_diag_a.png similarity index 100% rename from Assets/Image/GUIWindows/cursor_diag_a.png rename to Assets/Resources/Images/cursor_diag_a.png diff --git a/Assets/Image/GUIWindows/cursor_diag_a.png.meta b/Assets/Resources/Images/cursor_diag_a.png.meta similarity index 100% rename from Assets/Image/GUIWindows/cursor_diag_a.png.meta rename to Assets/Resources/Images/cursor_diag_a.png.meta diff --git a/Assets/Image/GUIWindows/cursor_diag_b.png b/Assets/Resources/Images/cursor_diag_b.png similarity index 100% rename from Assets/Image/GUIWindows/cursor_diag_b.png rename to Assets/Resources/Images/cursor_diag_b.png diff --git a/Assets/Image/GUIWindows/cursor_diag_b.png.meta b/Assets/Resources/Images/cursor_diag_b.png.meta similarity index 100% rename from Assets/Image/GUIWindows/cursor_diag_b.png.meta rename to Assets/Resources/Images/cursor_diag_b.png.meta diff --git a/Assets/Image/GUIWindows/cursor_horizontal.png b/Assets/Resources/Images/cursor_horizontal.png similarity index 100% rename from Assets/Image/GUIWindows/cursor_horizontal.png rename to Assets/Resources/Images/cursor_horizontal.png diff --git a/Assets/Image/GUIWindows/cursor_horizontal.png.meta b/Assets/Resources/Images/cursor_horizontal.png.meta similarity index 100% rename from Assets/Image/GUIWindows/cursor_horizontal.png.meta rename to Assets/Resources/Images/cursor_horizontal.png.meta diff --git a/Assets/Image/GUIWindows/cursor_vertical.png b/Assets/Resources/Images/cursor_vertical.png similarity index 100% rename from Assets/Image/GUIWindows/cursor_vertical.png rename to Assets/Resources/Images/cursor_vertical.png diff --git a/Assets/Image/GUIWindows/cursor_vertical.png.meta b/Assets/Resources/Images/cursor_vertical.png.meta similarity index 100% rename from Assets/Image/GUIWindows/cursor_vertical.png.meta rename to Assets/Resources/Images/cursor_vertical.png.meta diff --git a/Assets/Scripts/Studio/Managers/CursorManager.cs b/Assets/Scripts/Studio/Managers/CursorManager.cs new file mode 100644 index 00000000..d5095824 --- /dev/null +++ b/Assets/Scripts/Studio/Managers/CursorManager.cs @@ -0,0 +1,79 @@ +using UnityEngine; +using UnityEngine.UI; +using XED.UI; + +namespace XED +{ + public class CursorManager : MonoBehaviour + { + Texture2D cursor_Up; + Texture2D cursor_Down; + Texture2D cursor_Left; + Texture2D cursor_Right; + Texture2D cursor_UpLeft; + Texture2D cursor_UpRight; + Texture2D cursor_DownLeft; + Texture2D cursor_DownRight; + + public override void AfterAwake() + { + cursor_Up = Resources.Load("Images/cursor_vertical"); + cursor_Down = Resources.Load("Images/cursor_vertical"); + cursor_Left = Resources.Load("Images/cursor_horizontal"); + cursor_Right = Resources.Load("Images/cursor_horizontal"); + cursor_UpLeft = Resources.Load("Images/cursor_diag_a"); + cursor_UpRight = Resources.Load("Images/cursor_diag_b"); + cursor_DownLeft = Resources.Load("Images/cursor_diag_b"); + cursor_DownRight = Resources.Load("Images/cursor_diag_a"); + } + /* + public void ChangeMouseCursor() + { + if (state == GUIState.Resize) + return; + + switch (GetHandleDirection()) + { + case Direction.Up: + ChangeCursor(cursor_Up); + break; + case Direction.Down: + ChangeCursor(cursor_Down); + break; + case Direction.Left: + ChangeCursor(cursor_Left); + break; + case Direction.Right: + ChangeCursor(cursor_Right); + break; + case Direction.UpLeft: + ChangeCursor(cursor_UpLeft); + break; + case Direction.UpRight: + ChangeCursor(cursor_UpRight); + break; + case Direction.DownLeft: + ChangeCursor(cursor_DownLeft); + break; + case Direction.DownRight: + ChangeCursor(cursor_DownRight); + break; + case Direction.None: + ChangeCursor(null); + break; + } + } + */ + public void ChangeCursor(Texture2D cursorTexture) + { + Vector2 hotspot = new Vector2(16, 16); + + if (cursorTexture == null) + { + hotspot = Vector2.zero; + } + + Cursor.SetCursor(cursorTexture, hotspot, CursorMode.Auto); + } + } +} diff --git a/Assets/Scripts/Studio/Managers/CursorManager.cs.meta b/Assets/Scripts/Studio/Managers/CursorManager.cs.meta new file mode 100644 index 00000000..fe8d4280 --- /dev/null +++ b/Assets/Scripts/Studio/Managers/CursorManager.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 23783baffd622ff438e68f32651014a5 \ No newline at end of file diff --git a/Assets/Scripts/Studio/UI/Tag/UI_GUIWindow.cs b/Assets/Scripts/Studio/UI/Tag/UI_GUIWindow.cs index 512d6651..6031ae48 100644 --- a/Assets/Scripts/Studio/UI/Tag/UI_GUIWindow.cs +++ b/Assets/Scripts/Studio/UI/Tag/UI_GUIWindow.cs @@ -35,21 +35,13 @@ namespace XED.UI [SerializeField] RectTransform header; - [SerializeField] Texture2D cursor_Up; - [SerializeField] Texture2D cursor_Down; - [SerializeField] Texture2D cursor_Left; - [SerializeField] Texture2D cursor_Right; - [SerializeField] Texture2D cursor_UpLeft; - [SerializeField] Texture2D cursor_UpRight; - [SerializeField] Texture2D cursor_DownLeft; - [SerializeField] Texture2D cursor_DownRight; Vector2 mousePos; @@ -60,7 +52,7 @@ namespace XED.UI Vector2 initialSize; Vector2 initialPivot; - public float handleThickness = 20f; + public float handleThickness = 5f; public float minWidth = 100; public float minHeight = 100; @@ -75,6 +67,15 @@ namespace XED.UI { gameObject.AddComponent(); } + + cursor_Up = Resources.Load("Images/cursor_vertical"); + cursor_Down = Resources.Load("Images/cursor_vertical"); + cursor_Left = Resources.Load("Images/cursor_horizontal"); + cursor_Right = Resources.Load("Images/cursor_horizontal"); + cursor_UpLeft = Resources.Load("Images/cursor_diag_a"); + cursor_UpRight = Resources.Load("Images/cursor_diag_b"); + cursor_DownLeft = Resources.Load("Images/cursor_diag_b"); + cursor_DownRight = Resources.Load("Images/cursor_diag_a"); } private void OnEnable() @@ -106,10 +107,6 @@ namespace XED.UI { SetResizeState(handleDirection); } - else if (mouseDown && IsRectContainsMouse(header)) - { - SetMoveState(); - } switch (state) { @@ -122,14 +119,6 @@ namespace XED.UI } } - bool IsRectContainsMouse(RectTransform range) - { - Vector2 localPoint; - RectTransformUtility.ScreenPointToLocalPointInRectangle(range, mousePos, null, out localPoint); - - return header.rect.Contains(localPoint); - } - Direction GetHandleDirection() { Vector2 localPoint; @@ -161,7 +150,7 @@ namespace XED.UI else return Direction.None; } - void SetMoveState() + public void SetMoveState() { mouseOffset = transform.position - Input.mousePosition; state = GUIState.Move; @@ -212,9 +201,7 @@ namespace XED.UI void Move() { Vector2 mousePos = Input.mousePosition; - Vector2 panelPos = transform.position; - Vector2 headerPos = transform.position; - Vector2 panelMovePos = mousePos - (headerPos - panelPos) + mouseOffset; + Vector2 panelMovePos = mousePos + mouseOffset; transform.position = panelMovePos; } @@ -332,7 +319,7 @@ namespace XED.UI Cursor.SetCursor(cursorTexture, hotspot, CursorMode.Auto); } - void InitializeState() + public void InitializeState() { state = GUIState.None; SetPanelPivot(initialPivot); diff --git a/Assets/Scripts/Studio/UI/Tag/UI_GUIWindowHeader.cs b/Assets/Scripts/Studio/UI/Tag/UI_GUIWindowHeader.cs new file mode 100644 index 00000000..aeb432cd --- /dev/null +++ b/Assets/Scripts/Studio/UI/Tag/UI_GUIWindowHeader.cs @@ -0,0 +1,44 @@ +using UnityEngine; +using UnityEngine.EventSystems; +using XRLib.UI; + +namespace XED.UI +{ + public class UI_GUIWindowHeader : UIBase, IPointerDownHandler, IPointerUpHandler + { + UI_GUIWindow parentGUIWindow; + + public override void AfterAwake() + { + parentGUIWindow = GetParentGUIWindow(); + } + + public void OnPointerDown(PointerEventData eventData) + { + parentGUIWindow.SetMoveState(); + } + + public void OnPointerUp(PointerEventData eventData) + { + parentGUIWindow.InitializeState(); + } + + UI_GUIWindow GetParentGUIWindow() + { + Transform parent = transform; + + while (parent != null) + { + UI_GUIWindow guiWindow = parent.GetComponent(); + if (guiWindow != null) + { + return guiWindow; + } + parent = parent.parent; + } + + Debug.LogError("Header°¡ GUIWindow°¡ ¾Æ´Ñ °÷¿¡ ÀÖÀ½: " + gameObject.name); + return null; + } + } +} diff --git a/Assets/Scripts/Studio/UI/Tag/UI_GUIWindowHeader.cs.meta b/Assets/Scripts/Studio/UI/Tag/UI_GUIWindowHeader.cs.meta new file mode 100644 index 00000000..992bc1fb --- /dev/null +++ b/Assets/Scripts/Studio/UI/Tag/UI_GUIWindowHeader.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: fa81ed666c3432441a47113a8812fc7c \ No newline at end of file