From 5aa8a171032f324852673482d4c424e48a5cb962 Mon Sep 17 00:00:00 2001 From: Jay <96156114+jaydev00a@users.noreply.github.com> Date: Fri, 21 Mar 2025 17:28:41 +0900 Subject: [PATCH] =?UTF-8?q?[Feat]=20=ED=8C=A8=EB=B0=B0=20=ED=8C=A8?= =?UTF-8?q?=EB=84=90=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Resources/Prefabs/Effects.meta | 8 + .../Prefabs/Effects/Lose Effect Panel.prefab | 453 ++++++++++++++++++ .../Effects/Lose Effect Panel.prefab.meta | 7 + .../{ => Effects}/Win Effect Panel.prefab | 0 .../Win Effect Panel.prefab.meta | 0 .../Prefabs/Panels/Main Panel.prefab | 2 +- Assets/Script/UI/Effect.meta | 3 + .../Script/UI/Effect/LoseEffectController.cs | 39 ++ .../UI/Effect/LoseEffectController.cs.meta | 3 + .../Effect}/WinEffectController.cs | 0 .../Effect}/WinEffectController.cs.meta | 0 11 files changed, 514 insertions(+), 1 deletion(-) create mode 100644 Assets/Resources/Prefabs/Effects.meta create mode 100644 Assets/Resources/Prefabs/Effects/Lose Effect Panel.prefab create mode 100644 Assets/Resources/Prefabs/Effects/Lose Effect Panel.prefab.meta rename Assets/Resources/Prefabs/{ => Effects}/Win Effect Panel.prefab (100%) rename Assets/Resources/Prefabs/{ => Effects}/Win Effect Panel.prefab.meta (100%) create mode 100644 Assets/Script/UI/Effect.meta create mode 100644 Assets/Script/UI/Effect/LoseEffectController.cs create mode 100644 Assets/Script/UI/Effect/LoseEffectController.cs.meta rename Assets/Script/{Game => UI/Effect}/WinEffectController.cs (100%) rename Assets/Script/{Game => UI/Effect}/WinEffectController.cs.meta (100%) diff --git a/Assets/Resources/Prefabs/Effects.meta b/Assets/Resources/Prefabs/Effects.meta new file mode 100644 index 0000000..4a27f1e --- /dev/null +++ b/Assets/Resources/Prefabs/Effects.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b00e83f7b81d7bb4bada96e2542a2669 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Effects/Lose Effect Panel.prefab b/Assets/Resources/Prefabs/Effects/Lose Effect Panel.prefab new file mode 100644 index 0000000..0dad469 --- /dev/null +++ b/Assets/Resources/Prefabs/Effects/Lose Effect Panel.prefab @@ -0,0 +1,453 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1632927645355555415 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1390219999539612172} + - component: {fileID: 927444670404224589} + - component: {fileID: 6604554389619594730} + m_Layer: 5 + m_Name: Character open eyes Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1390219999539612172 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1632927645355555415} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.4, y: 1.4, z: 1.4} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1352311091840909139} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 65} + m_SizeDelta: {x: 275, y: 247} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &927444670404224589 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1632927645355555415} + m_CullTransparentMesh: 1 +--- !u!114 &6604554389619594730 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1632927645355555415} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: f67070d8e5c1ec64ba48677b11840944, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &3881260292094838299 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1985024058431067504} + - component: {fileID: 7849451644384665014} + - component: {fileID: 5411023961913087320} + m_Layer: 5 + m_Name: Character close eyes Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1985024058431067504 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3881260292094838299} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.4, y: 1.4, z: 1.4} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1352311091840909139} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 65} + m_SizeDelta: {x: 275, y: 247} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7849451644384665014 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3881260292094838299} + m_CullTransparentMesh: 1 +--- !u!114 &5411023961913087320 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3881260292094838299} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 96e92b16d1084da48b111b19e8b73588, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &5874727476658355550 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3689384059397740636} + - component: {fileID: 6072951756896381673} + - component: {fileID: 5108301403921453943} + m_Layer: 5 + m_Name: Banner Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3689384059397740636 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5874727476658355550} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1352311091840909139} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: -192} + m_SizeDelta: {x: 0, y: 200} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6072951756896381673 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5874727476658355550} + m_CullTransparentMesh: 1 +--- !u!114 &5108301403921453943 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5874727476658355550} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 85a19688db53c77469fc4406b01045da, type: 2} + m_sharedMaterial: {fileID: -2477908578676791210, guid: 85a19688db53c77469fc4406b01045da, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4289051289 + m_fontColor: {r: 0.6, g: 0.7294118, b: 0.64705884, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 85 + m_fontSizeBase: 85 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &7291411618834705046 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1352311091840909139} + - component: {fileID: 705269762244594793} + - component: {fileID: 100090702040622446} + m_Layer: 5 + m_Name: Banner + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1352311091840909139 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7291411618834705046} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3689384059397740636} + - {fileID: 1985024058431067504} + - {fileID: 1390219999539612172} + m_Father: {fileID: 7963582976605285404} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 862, y: 584} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &705269762244594793 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7291411618834705046} + m_CullTransparentMesh: 1 +--- !u!114 &100090702040622446 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7291411618834705046} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: a5f2ce49cc550d146b203e8a98b114d3, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &8383435151006156655 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7963582976605285404} + - component: {fileID: 8139433458976667477} + - component: {fileID: 8635639988778983738} + - component: {fileID: 4545556044007292713} + m_Layer: 5 + m_Name: Lose Effect Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7963582976605285404 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8383435151006156655} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1352311091840909139} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8139433458976667477 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8383435151006156655} + m_CullTransparentMesh: 1 +--- !u!114 &8635639988778983738 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8383435151006156655} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!225 &4545556044007292713 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8383435151006156655} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 diff --git a/Assets/Resources/Prefabs/Effects/Lose Effect Panel.prefab.meta b/Assets/Resources/Prefabs/Effects/Lose Effect Panel.prefab.meta new file mode 100644 index 0000000..72780a4 --- /dev/null +++ b/Assets/Resources/Prefabs/Effects/Lose Effect Panel.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 89231ebcfccd7b94d9a0f5f1c502f3dc +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Win Effect Panel.prefab b/Assets/Resources/Prefabs/Effects/Win Effect Panel.prefab similarity index 100% rename from Assets/Resources/Prefabs/Win Effect Panel.prefab rename to Assets/Resources/Prefabs/Effects/Win Effect Panel.prefab diff --git a/Assets/Resources/Prefabs/Win Effect Panel.prefab.meta b/Assets/Resources/Prefabs/Effects/Win Effect Panel.prefab.meta similarity index 100% rename from Assets/Resources/Prefabs/Win Effect Panel.prefab.meta rename to Assets/Resources/Prefabs/Effects/Win Effect Panel.prefab.meta diff --git a/Assets/Resources/Prefabs/Panels/Main Panel.prefab b/Assets/Resources/Prefabs/Panels/Main Panel.prefab index 9a6246d..c60cb91 100644 --- a/Assets/Resources/Prefabs/Panels/Main Panel.prefab +++ b/Assets/Resources/Prefabs/Panels/Main Panel.prefab @@ -1714,7 +1714,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: "\uBC15\uC77C\uD658" + m_text: "\uAE40\uBCC4\uBA85" m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 85a19688db53c77469fc4406b01045da, type: 2} m_sharedMaterial: {fileID: -2477908578676791210, guid: 85a19688db53c77469fc4406b01045da, type: 2} diff --git a/Assets/Script/UI/Effect.meta b/Assets/Script/UI/Effect.meta new file mode 100644 index 0000000..663b996 --- /dev/null +++ b/Assets/Script/UI/Effect.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 5838489e0b2e4c8cae060f0c845eae11 +timeCreated: 1742541035 \ No newline at end of file diff --git a/Assets/Script/UI/Effect/LoseEffectController.cs b/Assets/Script/UI/Effect/LoseEffectController.cs new file mode 100644 index 0000000..862d84d --- /dev/null +++ b/Assets/Script/UI/Effect/LoseEffectController.cs @@ -0,0 +1,39 @@ +using System.Collections; +using TMPro; +using UnityEngine; + +public class LoseEffectController : MonoBehaviour +{ + [SerializeField] private TextMeshProUGUI bannerText; + + [SerializeField] private string fullText = "패배했습니다"; // 원하는 문구를 인스펙터에서 설정 가능 + [SerializeField] private float interval = 0.1f; // 글자 추가 속도 조정 가능 + + private int currentLength = 0; + + private void Start() + { + ShowWinEffect(); + } + + private void ShowWinEffect() + { + // 패널 활성화 + gameObject.SetActive(true); + // cancellationTokenSource = new CancellationTokenSource(); + + StartCoroutine(AnimateLoadingText()); // 텍스트 타이핑 효과 + } + + // 글자 하나씩 나타나는 타이핑 효과 + private IEnumerator AnimateLoadingText() + { + yield return new WaitForSeconds(1f); + while (currentLength != fullText.Length) + { + currentLength = (currentLength + 1) % (fullText.Length + 1); // 글자 하나씩 추가 + bannerText.text = fullText.Substring(0, currentLength); // 부분 문자열 표시 + yield return new WaitForSeconds(interval); + } + } +} diff --git a/Assets/Script/UI/Effect/LoseEffectController.cs.meta b/Assets/Script/UI/Effect/LoseEffectController.cs.meta new file mode 100644 index 0000000..1847fb5 --- /dev/null +++ b/Assets/Script/UI/Effect/LoseEffectController.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 72737ad525374cd18ae35ca10da520e9 +timeCreated: 1742541126 \ No newline at end of file diff --git a/Assets/Script/Game/WinEffectController.cs b/Assets/Script/UI/Effect/WinEffectController.cs similarity index 100% rename from Assets/Script/Game/WinEffectController.cs rename to Assets/Script/UI/Effect/WinEffectController.cs diff --git a/Assets/Script/Game/WinEffectController.cs.meta b/Assets/Script/UI/Effect/WinEffectController.cs.meta similarity index 100% rename from Assets/Script/Game/WinEffectController.cs.meta rename to Assets/Script/UI/Effect/WinEffectController.cs.meta