From 926d452b70c4c93daf9412fcce31ca562fdd7450 Mon Sep 17 00:00:00 2001 From: Lim0_C Date: Wed, 26 Mar 2025 15:03:24 +0900 Subject: [PATCH 1/2] =?UTF-8?q?DO-46=20[Feat]=20=EA=B2=8C=EC=9E=84?= =?UTF-8?q?=EC=8A=B9=ED=8C=A8=20=ED=9B=84=20=EC=8A=B9=EA=B8=89=ED=8C=A8?= =?UTF-8?q?=EB=84=90=20=ED=91=9C=EC=8B=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Prefabs/Effects/Draw Effect Panel.prefab | 46 +++++++++++++++++++ .../Prefabs/Effects/Lose Effect Panel.prefab | 46 +++++++++++++++++++ .../Prefabs/Effects/Win Effect Panel.prefab | 46 +++++++++++++++++++ .../Script/UI/Effect/DrawEffectController.cs | 3 +- Assets/Script/UI/Effect/EffectController.cs | 25 +++++++--- .../Script/UI/Effect/LoseEffectController.cs | 3 +- .../Script/UI/Effect/WinEffectController.cs | 3 +- .../Script/UI/PanelController/PanelManager.cs | 13 +++++- 8 files changed, 173 insertions(+), 12 deletions(-) diff --git a/Assets/Resources/Prefabs/Effects/Draw Effect Panel.prefab b/Assets/Resources/Prefabs/Effects/Draw Effect Panel.prefab index c7dccab..c1d50fe 100644 --- a/Assets/Resources/Prefabs/Effects/Draw Effect Panel.prefab +++ b/Assets/Resources/Prefabs/Effects/Draw Effect Panel.prefab @@ -527,6 +527,7 @@ GameObject: - component: {fileID: 8635639988778983738} - component: {fileID: 4545556044007292713} - component: {fileID: 6152865991947934791} + - component: {fileID: 3813612584874639807} m_Layer: 5 m_Name: Draw Effect Panel m_TagString: Untagged @@ -624,3 +625,48 @@ MonoBehaviour: tigerOpenEyes: {fileID: 1508819185250841244} tigerCloseEyes: {fileID: 399504369641388738} flipDuration: 0.3 +--- !u!61 &3813612584874639807 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8383435151006156655} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0, y: 0} + oldSize: {x: 0, y: 0} + newSize: {x: 0, y: 0} + adaptiveTilingThreshold: 0 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 1, y: 1} + m_EdgeRadius: 0 diff --git a/Assets/Resources/Prefabs/Effects/Lose Effect Panel.prefab b/Assets/Resources/Prefabs/Effects/Lose Effect Panel.prefab index 82b84f5..d845fd9 100644 --- a/Assets/Resources/Prefabs/Effects/Lose Effect Panel.prefab +++ b/Assets/Resources/Prefabs/Effects/Lose Effect Panel.prefab @@ -450,6 +450,7 @@ GameObject: - component: {fileID: 8635639988778983738} - component: {fileID: 4545556044007292713} - component: {fileID: 3229800624310508893} + - component: {fileID: 6984539173991577744} m_Layer: 5 m_Name: Lose Effect Panel m_TagString: Untagged @@ -546,3 +547,48 @@ MonoBehaviour: characterOpenEyes: {fileID: 1632927645355555415} characterCloseEyes: {fileID: 3881260292094838299} depressedEffect: {fileID: 155037671892554820} +--- !u!61 &6984539173991577744 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8383435151006156655} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0, y: 0} + oldSize: {x: 0, y: 0} + newSize: {x: 0, y: 0} + adaptiveTilingThreshold: 0 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 1, y: 1} + m_EdgeRadius: 0 diff --git a/Assets/Resources/Prefabs/Effects/Win Effect Panel.prefab b/Assets/Resources/Prefabs/Effects/Win Effect Panel.prefab index c8e9768..a1f88a4 100644 --- a/Assets/Resources/Prefabs/Effects/Win Effect Panel.prefab +++ b/Assets/Resources/Prefabs/Effects/Win Effect Panel.prefab @@ -788,6 +788,7 @@ GameObject: - component: {fileID: 8635639988778983738} - component: {fileID: 3127148509640414758} - component: {fileID: 4545556044007292713} + - component: {fileID: 7229651074095795597} m_Layer: 5 m_Name: Win Effect Panel m_TagString: Untagged @@ -890,6 +891,51 @@ CanvasGroup: m_Interactable: 1 m_BlocksRaycasts: 1 m_IgnoreParentGroups: 0 +--- !u!61 &7229651074095795597 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8383435151006156655} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0, y: 0} + oldSize: {x: 0, y: 0} + newSize: {x: 0, y: 0} + adaptiveTilingThreshold: 0 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 1, y: 1} + m_EdgeRadius: 0 --- !u!1 &8851077685063213123 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Script/UI/Effect/DrawEffectController.cs b/Assets/Script/UI/Effect/DrawEffectController.cs index 13302be..087645c 100644 --- a/Assets/Script/UI/Effect/DrawEffectController.cs +++ b/Assets/Script/UI/Effect/DrawEffectController.cs @@ -12,10 +12,11 @@ public class DrawEffectController : EffectController [SerializeField] private float flipDuration = 0.3f; protected override string fullText => "무승부 입니다"; - protected override void ShowEffect() + public override void ShowEffect(OnEffectPanelEnded onEffectPanelEnd) { gameObject.SetActive(true); cancellationTokenSource = new CancellationTokenSource(); + onEffectPanelEnded = onEffectPanelEnd; ShowPanel(); StartCoroutine(AnimateLoadingText()); diff --git a/Assets/Script/UI/Effect/EffectController.cs b/Assets/Script/UI/Effect/EffectController.cs index 08fbc57..a9492fb 100644 --- a/Assets/Script/UI/Effect/EffectController.cs +++ b/Assets/Script/UI/Effect/EffectController.cs @@ -3,9 +3,11 @@ using System.Threading; using DG.Tweening; using TMPro; using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UIElements; [RequireComponent(typeof(CanvasGroup))] -public abstract class EffectController : MonoBehaviour +public abstract class EffectController : MonoBehaviour, IPointerClickHandler { [SerializeField] protected GameObject bannerObj; [SerializeField] protected TextMeshProUGUI bannerText; @@ -14,14 +16,17 @@ public abstract class EffectController : MonoBehaviour protected CancellationTokenSource cancellationTokenSource; protected int currentLength = 0; + + public delegate void OnEffectPanelEnded(); + protected OnEffectPanelEnded onEffectPanelEnded; - protected virtual void Start() - { - ShowEffect(); - } + // protected virtual void Start() + // { + // ShowEffect(); + // } // 효과를 실행하는 메서드 (자식이 구현해야 함) - protected abstract void ShowEffect(); + public abstract void ShowEffect(OnEffectPanelEnded onEffectPanelEnded); // 공통 UI 애니메이션 (패널 표시) protected virtual void ShowPanel() @@ -59,7 +64,13 @@ public abstract class EffectController : MonoBehaviour cancellationTokenSource.Dispose(); cancellationTokenSource = null; } - + + onEffectPanelEnded?.Invoke(); gameObject.SetActive(false); } + + public void OnPointerClick(PointerEventData eventData) + { + HideEffect(); + } } \ No newline at end of file diff --git a/Assets/Script/UI/Effect/LoseEffectController.cs b/Assets/Script/UI/Effect/LoseEffectController.cs index c1cc3ce..e20cce3 100644 --- a/Assets/Script/UI/Effect/LoseEffectController.cs +++ b/Assets/Script/UI/Effect/LoseEffectController.cs @@ -12,10 +12,11 @@ public class LoseEffectController : EffectController protected override string fullText => "패배했습니다"; - protected override void ShowEffect() + public override void ShowEffect(OnEffectPanelEnded onEffectPanelEnd) { gameObject.SetActive(true); cancellationTokenSource = new CancellationTokenSource(); + onEffectPanelEnded = onEffectPanelEnd; ShowPanel(); StartCoroutine(AnimateLoadingText()); diff --git a/Assets/Script/UI/Effect/WinEffectController.cs b/Assets/Script/UI/Effect/WinEffectController.cs index 3aed378..76c09a5 100644 --- a/Assets/Script/UI/Effect/WinEffectController.cs +++ b/Assets/Script/UI/Effect/WinEffectController.cs @@ -14,10 +14,11 @@ public class WinEffectController : EffectController protected override string fullText => "승리했습니다!"; - protected override void ShowEffect() + public override void ShowEffect(OnEffectPanelEnded onEffectPanelEnd) { gameObject.SetActive(true); cancellationTokenSource = new CancellationTokenSource(); + onEffectPanelEnded = onEffectPanelEnd; ShowPanel(); StartCoroutine(AnimateLoadingText()); diff --git a/Assets/Script/UI/PanelController/PanelManager.cs b/Assets/Script/UI/PanelController/PanelManager.cs index 33400a9..dc8904e 100644 --- a/Assets/Script/UI/PanelController/PanelManager.cs +++ b/Assets/Script/UI/PanelController/PanelManager.cs @@ -86,22 +86,31 @@ public class PanelManager : MonoBehaviour if (_canvas != null) { var winEffectPanelObject = GetEffectPanel("Win Effect Panel"); + winEffectPanelObject.GetComponent().ShowEffect(OnEffectPanelEnded); } break; case Enums.GameResult.Lose: if (_canvas != null) { - var winEffectPanelObject = GetEffectPanel("Lose Effect Panel"); + var loseEffectPanelObject = GetEffectPanel("Lose Effect Panel"); + loseEffectPanelObject.GetComponent().ShowEffect(OnEffectPanelEnded); } break; case Enums.GameResult.Draw: if (_canvas != null) { - var winEffectPanelObject = GetEffectPanel("Draw Effect Panel"); + var drawEffectPanelObject = GetEffectPanel("Draw Effect Panel"); + drawEffectPanelObject.GetComponent().ShowEffect(OnEffectPanelEnded); } break; } } + + private void OnEffectPanelEnded() + { + //Todo: 승급패널 오픈 + OpenRatingPanel(); + } #endregion public void OpenMainPanel() From cc8223c0895795ad75e1981fb67f23e792c5519c Mon Sep 17 00:00:00 2001 From: Lim0_C Date: Wed, 26 Mar 2025 15:07:38 +0900 Subject: [PATCH 2/2] =?UTF-8?q?DO-46=20[fix]=20Todo=20=EC=A7=80=EC=9A=B0?= =?UTF-8?q?=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Script/UI/PanelController/PanelManager.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/Assets/Script/UI/PanelController/PanelManager.cs b/Assets/Script/UI/PanelController/PanelManager.cs index dc8904e..cbfc844 100644 --- a/Assets/Script/UI/PanelController/PanelManager.cs +++ b/Assets/Script/UI/PanelController/PanelManager.cs @@ -108,7 +108,6 @@ public class PanelManager : MonoBehaviour private void OnEffectPanelEnded() { - //Todo: 승급패널 오픈 OpenRatingPanel(); } #endregion