From 34fb7d54fff161c9d9402fbf1b52baf128a9a0d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EC=98=81=EB=AF=BC?= <117150306+jym04@users.noreply.github.com> Date: Wed, 18 Jun 2025 17:50:46 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9E=85=EB=A0=A5=ED=95=84=EB=93=9C=20?= =?UTF-8?q?=ED=95=98=EC=9D=B4=EB=9D=BC=EC=9D=B4=ED=8A=B8=20=EC=98=A4?= =?UTF-8?q?=EB=A5=98,=20=EC=B5=9C=EC=B4=88=20=ED=99=94=EB=A9=B4=EC=97=90?= =?UTF-8?q?=EC=84=9C=20Open=20Project=EA=B0=80=20=EB=90=98=EC=A7=80=20?= =?UTF-8?q?=EC=95=8A=EB=8A=94=20=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Prefabs/AAA/Panel_Start.prefab | 16 ++++++++ .../Scripts/Studio/Managers/AssetManager.cs | 4 +- .../Studio/UI/Panel/Panel_NewProjectInfo.cs | 8 ++-- .../Studio/UI/Panel/Panel_OpenProjectInfo.cs | 38 +++++++++++++++++-- .../UI/Panel/Panel_TopMenuNewProjectInfo.cs | 8 ++-- .../UI/Panel/Panel_TopMenuOpenProjectInfo.cs | 11 +++--- 6 files changed, 66 insertions(+), 19 deletions(-) diff --git a/Assets/Prefabs/AAA/Panel_Start.prefab b/Assets/Prefabs/AAA/Panel_Start.prefab index 21d3c660..d4b063cc 100644 --- a/Assets/Prefabs/AAA/Panel_Start.prefab +++ b/Assets/Prefabs/AAA/Panel_Start.prefab @@ -3143,6 +3143,7 @@ GameObject: - component: {fileID: 1881980878456085221} - component: {fileID: 864169242389839687} - component: {fileID: 368971987607002277} + - component: {fileID: 8668772194790118665} m_Layer: 5 m_Name: InputField_ProjectRoute m_TagString: Untagged @@ -3310,6 +3311,21 @@ MonoBehaviour: isAlert: 0 m_InputValidator: {fileID: 0} m_ShouldActivateOnSelect: 1 +--- !u!114 &8668772194790118665 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4595659736689126238} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e19747de3f5aca642ab2be37e372fb86, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 1, g: 0, b: 0, a: 0} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 --- !u!1 &4745164295224957327 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Studio/Managers/AssetManager.cs b/Assets/Scripts/Studio/Managers/AssetManager.cs index 75446ffc..2e288621 100644 --- a/Assets/Scripts/Studio/Managers/AssetManager.cs +++ b/Assets/Scripts/Studio/Managers/AssetManager.cs @@ -244,7 +244,7 @@ namespace Studio.Manage foreach (var mf in meshFilters) { - if (mf.sharedMesh.isReadable) + if (!mf.sharedMesh.isReadable) continue; if (mf.sharedMesh != null) @@ -256,7 +256,7 @@ namespace Studio.Manage foreach (var smr in skinnedRenderers) { - if (smr.sharedMesh.isReadable) + if (!smr.sharedMesh.isReadable) continue; if (smr.sharedMesh != null) diff --git a/Assets/Scripts/Studio/UI/Panel/Panel_NewProjectInfo.cs b/Assets/Scripts/Studio/UI/Panel/Panel_NewProjectInfo.cs index c298f962..83dbf6a2 100644 --- a/Assets/Scripts/Studio/UI/Panel/Panel_NewProjectInfo.cs +++ b/Assets/Scripts/Studio/UI/Panel/Panel_NewProjectInfo.cs @@ -128,17 +128,17 @@ namespace Studio.UI while (count < 1) { - while (inputFieldOutline.effectColor.a <= 1f) + while (tempColor.a < 1f) { - tempColor.a += 0.1f; + tempColor.a = Mathf.Clamp(tempColor.a + 0.1f, 0f, 1f); inputFieldOutline.effectColor = tempColor; yield return new WaitForSeconds(0.02f); } yield return new WaitForSeconds(0.1f); - while (inputFieldOutline.effectColor.a >= 0f) + while (tempColor.a > 0f) { - tempColor.a -= 0.1f; + tempColor.a = Mathf.Clamp(tempColor.a - 0.1f, 0f, 1f); inputFieldOutline.effectColor = tempColor; yield return new WaitForSeconds(0.02f); } diff --git a/Assets/Scripts/Studio/UI/Panel/Panel_OpenProjectInfo.cs b/Assets/Scripts/Studio/UI/Panel/Panel_OpenProjectInfo.cs index 7360ddd6..e731e6f5 100644 --- a/Assets/Scripts/Studio/UI/Panel/Panel_OpenProjectInfo.cs +++ b/Assets/Scripts/Studio/UI/Panel/Panel_OpenProjectInfo.cs @@ -1,7 +1,9 @@ using Newtonsoft.Json; using Ookii.Dialogs; +using Studio.Core; using Studio.Util; using System; +using System.Collections; using System.Collections.Generic; using System.IO; using TMPro; @@ -49,6 +51,7 @@ namespace Studio.UI { if (!IsPathVaild(input)) { + InputFieldHighlight(InputField_ProjectRoute); Footer.gameObject.SetActive(false); Text_ProjectName.text = string.Empty; return; @@ -84,9 +87,7 @@ namespace Studio.UI if (paths.Count > 0 && !string.IsNullOrEmpty(paths[0].Name)) { - var path = Path.GetDirectoryName(paths[0].Name); - - InputField_ProjectRoute.text = path; + InputField_ProjectRoute.text = paths[0].Name; InputField_ProjectRoute.onEndEdit?.Invoke(InputField_ProjectRoute.text); } onClickFileExplorer?.Invoke(); @@ -136,5 +137,36 @@ namespace Studio.UI } return true; } + private void InputFieldHighlight(TMP_InputField inputField) + { + CoroutineRunner.instance.StartCoroutine(Blink(inputField)); + } + private IEnumerator Blink(TMP_InputField inputField) + { + var inputFieldOutline = inputField.GetComponent(); + Color tempColor = inputFieldOutline.effectColor; + var count = 0; + + while (count < 1) + { + while (tempColor.a < 1f) + { + tempColor.a = Mathf.Clamp(tempColor.a + 0.1f, 0f, 1f); + inputFieldOutline.effectColor = tempColor; + yield return new WaitForSeconds(0.02f); + } + yield return new WaitForSeconds(0.1f); + + while (tempColor.a > 0f) + { + tempColor.a = Mathf.Clamp(tempColor.a - 0.1f, 0f, 1f); + inputFieldOutline.effectColor = tempColor; + yield return new WaitForSeconds(0.02f); + } + yield return new WaitForSeconds(0.1f); + + count++; + } + } } } diff --git a/Assets/Scripts/Studio/UI/Panel/Panel_TopMenuNewProjectInfo.cs b/Assets/Scripts/Studio/UI/Panel/Panel_TopMenuNewProjectInfo.cs index dc9d5900..3cf9d981 100644 --- a/Assets/Scripts/Studio/UI/Panel/Panel_TopMenuNewProjectInfo.cs +++ b/Assets/Scripts/Studio/UI/Panel/Panel_TopMenuNewProjectInfo.cs @@ -120,17 +120,17 @@ namespace Studio.UI while (count < 1) { - while (inputFieldOutline.effectColor.a <= 1f) + while (tempColor.a < 1f) { - tempColor.a += 0.1f; + tempColor.a = Mathf.Clamp(tempColor.a + 0.1f, 0f, 1f); inputFieldOutline.effectColor = tempColor; yield return new WaitForSeconds(0.02f); } yield return new WaitForSeconds(0.1f); - while (inputFieldOutline.effectColor.a >= 0f) + while (tempColor.a > 0f) { - tempColor.a -= 0.1f; + tempColor.a = Mathf.Clamp(tempColor.a - 0.1f, 0f, 1f); inputFieldOutline.effectColor = tempColor; yield return new WaitForSeconds(0.02f); } diff --git a/Assets/Scripts/Studio/UI/Panel/Panel_TopMenuOpenProjectInfo.cs b/Assets/Scripts/Studio/UI/Panel/Panel_TopMenuOpenProjectInfo.cs index f9fb1d0b..f070ab10 100644 --- a/Assets/Scripts/Studio/UI/Panel/Panel_TopMenuOpenProjectInfo.cs +++ b/Assets/Scripts/Studio/UI/Panel/Panel_TopMenuOpenProjectInfo.cs @@ -34,8 +34,7 @@ namespace Studio.UI if (paths.Count > 0 && !string.IsNullOrEmpty(paths[0].Name)) { - var path = Path.GetDirectoryName(paths[0].Name); - InputField_ProjectRoute.text = path; + InputField_ProjectRoute.text = paths[0].Name; } } @@ -86,17 +85,17 @@ namespace Studio.UI while (count < 1) { - while (inputFieldOutline.effectColor.a <= 1f) + while (tempColor.a < 1f) { - tempColor.a += 0.1f; + tempColor.a = Mathf.Clamp(tempColor.a + 0.1f, 0f, 1f); inputFieldOutline.effectColor = tempColor; yield return new WaitForSeconds(0.02f); } yield return new WaitForSeconds(0.1f); - while (inputFieldOutline.effectColor.a >= 0f) + while (tempColor.a > 0f) { - tempColor.a -= 0.1f; + tempColor.a = Mathf.Clamp(tempColor.a - 0.1f, 0f, 1f); inputFieldOutline.effectColor = tempColor; yield return new WaitForSeconds(0.02f); }