From 6f24086fd1e3f1376482b1461e1b90a6d8e52860 Mon Sep 17 00:00:00 2001 From: Ino Date: Wed, 10 Sep 2025 05:46:02 +0900 Subject: [PATCH] =?UTF-8?q?=EC=84=B9=EC=8B=9C=20=EC=9D=B4=EB=AF=B8?= =?UTF-8?q?=EC=A7=80=20=ED=95=98=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Bundles/Prefabs/CollectionCard.prefab | 97 +++++++++- Assets/Bundles/Prefabs/HuntingSlot.prefab | 95 ++++++++++ Assets/Scripts/UI/CollectionCard.cs | 7 +- Assets/Scripts/UI/HuntingSlot.cs | 16 +- Assets/UI/Animation/AlbumRightHeart.anim | 168 ++++++++++++++++++ Assets/UI/Animation/AlbumRightHeart.anim.meta | 8 + 6 files changed, 382 insertions(+), 9 deletions(-) create mode 100644 Assets/UI/Animation/AlbumRightHeart.anim create mode 100644 Assets/UI/Animation/AlbumRightHeart.anim.meta diff --git a/Assets/Bundles/Prefabs/CollectionCard.prefab b/Assets/Bundles/Prefabs/CollectionCard.prefab index 52252b0..ac70084 100644 --- a/Assets/Bundles/Prefabs/CollectionCard.prefab +++ b/Assets/Bundles/Prefabs/CollectionCard.prefab @@ -33,6 +33,7 @@ RectTransform: - {fileID: 5708158940125825565} - {fileID: 8085205632195448666} - {fileID: 2703057293387824824} + - {fileID: 992923851715958944} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -58,6 +59,7 @@ MonoBehaviour: go_buybtn: {fileID: 3789136453484296961} go_pricedia: {fileID: 8051172841433523431} go_priceheart: {fileID: 8361176392770920911} + Heart_Right: {fileID: 8728108810734430968} mat_blur: {fileID: 2100000, guid: e457caa43c8e39a4ea1bbc7d8c7d8b5b, type: 2} --- !u!1 &1144972893618915521 GameObject: @@ -566,7 +568,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: b24ed41675c0c674f9b27ffe23b7bf5f, type: 3} + m_Sprite: {fileID: 0} m_Type: 0 m_PreserveAspect: 1 m_FillCenter: 1 @@ -936,6 +938,99 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &8728108810734430968 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 992923851715958944} + - component: {fileID: 294293568858734497} + - component: {fileID: 4494773712612435028} + - component: {fileID: 4533280837404704300} + m_Layer: 5 + m_Name: heart + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &992923851715958944 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8728108810734430968} + 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: 1 + m_Children: [] + m_Father: {fileID: 1869107989516562376} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -64, y: -64} + m_SizeDelta: {x: 128, y: 128} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &294293568858734497 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8728108810734430968} + m_CullTransparentMesh: 1 +--- !u!114 &4494773712612435028 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8728108810734430968} + 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: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: f427dc0923fdac8438454f9efc8d9f23, 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!111 &4533280837404704300 +Animation: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8728108810734430968} + m_Enabled: 1 + serializedVersion: 4 + m_Animation: {fileID: 7400000, guid: 49f73d0b4035dcd408b8fc44051a62c6, type: 2} + m_Animations: + - {fileID: 7400000, guid: 49f73d0b4035dcd408b8fc44051a62c6, type: 2} + m_WrapMode: 0 + m_PlayAutomatically: 1 + m_AnimatePhysics: 0 + m_UpdateMode: 0 + m_CullingType: 0 --- !u!1 &8870768795708678106 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Bundles/Prefabs/HuntingSlot.prefab b/Assets/Bundles/Prefabs/HuntingSlot.prefab index b5dd730..edda436 100644 --- a/Assets/Bundles/Prefabs/HuntingSlot.prefab +++ b/Assets/Bundles/Prefabs/HuntingSlot.prefab @@ -356,6 +356,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 6967847731707239238} + - {fileID: 3672502949414491414} - {fileID: 1075369011134930243} - {fileID: 6354104306801034491} m_Father: {fileID: 1075369012538214659} @@ -587,6 +588,7 @@ MonoBehaviour: AI_Right: {fileID: 3175243965314032831} Block_Left: {fileID: 8119880088205245065} Block_Right: {fileID: 1075369011134930240} + Heart_Right: {fileID: 5557692083460958251} gos_openbutton: - {fileID: 6382742243046640568} - {fileID: 1246127175029040703} @@ -1321,6 +1323,99 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &5557692083460958251 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3672502949414491414} + - component: {fileID: 4763140933030595241} + - component: {fileID: 5249486102736360356} + - component: {fileID: 6188600231977536331} + m_Layer: 5 + m_Name: heart + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3672502949414491414 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5557692083460958251} + 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: 1 + m_Children: [] + m_Father: {fileID: 1075369012370353055} + 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: 72, y: 71} + m_SizeDelta: {x: 128, y: 128} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4763140933030595241 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5557692083460958251} + m_CullTransparentMesh: 1 +--- !u!114 &5249486102736360356 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5557692083460958251} + 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: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: f427dc0923fdac8438454f9efc8d9f23, 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!111 &6188600231977536331 +Animation: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5557692083460958251} + m_Enabled: 1 + serializedVersion: 4 + m_Animation: {fileID: 7400000, guid: 49f73d0b4035dcd408b8fc44051a62c6, type: 2} + m_Animations: + - {fileID: 7400000, guid: 49f73d0b4035dcd408b8fc44051a62c6, type: 2} + m_WrapMode: 0 + m_PlayAutomatically: 1 + m_AnimatePhysics: 0 + m_UpdateMode: 0 + m_CullingType: 0 --- !u!1 &5580047819361868791 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/UI/CollectionCard.cs b/Assets/Scripts/UI/CollectionCard.cs index f42b1d0..08fbc73 100644 --- a/Assets/Scripts/UI/CollectionCard.cs +++ b/Assets/Scripts/UI/CollectionCard.cs @@ -7,7 +7,7 @@ public class CollectionCard : CardBase { public Image i_face; public TextMeshProUGUI t_price; - public GameObject go_lock, go_buybtn, go_pricedia, go_priceheart; + public GameObject go_lock, go_buybtn, go_pricedia, go_priceheart, Heart_Right; public Material mat_blur; HuntingData m_Data; @@ -17,8 +17,8 @@ public class CollectionCard : CardBase base.Set(_base, iLoop, idata); m_Data = _base as HuntingData; - i_face.sprite = m_Data.UnlockImage(); var left = m_Data.Index % 2 == 0; + i_face.sprite = left ? m_Data.UnlockImage() : DB_HuntingData.GetEntity(m_Data.Index - 1).DBF_UnlockImage; t_price.text = left ? m_Data.NeedKey.ToString() : m_Data.NeedHeart.ToString(); if (left) { go_pricedia.SetActive(true); go_priceheart.SetActive(false); } else { go_pricedia.SetActive(false); go_priceheart.SetActive(true); } @@ -31,15 +31,18 @@ public class CollectionCard : CardBase go_buybtn.SetActive(true); i_face.material = mat_blur; go_lock.SetActive(true); + Heart_Right.SetActive(!left); } else if (m_Data.n_Group > unlockTargetIndex) { // 잠김 go_lock.SetActive(true); i_face.color = Color.black; + Heart_Right.SetActive(false); } else { // 열림 go_lock.SetActive(false); + Heart_Right.SetActive(!left); } } diff --git a/Assets/Scripts/UI/HuntingSlot.cs b/Assets/Scripts/UI/HuntingSlot.cs index 6c5c918..93947a8 100644 --- a/Assets/Scripts/UI/HuntingSlot.cs +++ b/Assets/Scripts/UI/HuntingSlot.cs @@ -5,6 +5,7 @@ using UnityEngine.ResourceManagement.AsyncOperations; using BansheeGz.BGDatabase; using UnityEngine.EventSystems; using TMPro; +using DG.Tweening; public class HuntingSlot : CardBase { @@ -15,7 +16,7 @@ public class HuntingSlot : CardBase [SerializeField] private Image AI_Left; [SerializeField] private Image AI_Right; [SerializeField] private GameObject Block_Left; - [SerializeField] private GameObject Block_Right; + [SerializeField] private GameObject Block_Right, Heart_Right; public GameObject[] gos_openbutton; // 0 캐시, 1 하트 public TextMeshProUGUI[] texts_price; public TextMeshProUGUI[] texts; // 0 lv, 1 point @@ -65,7 +66,7 @@ public class HuntingSlot : CardBase if (GameManager.BGDatabase.LoadUnlockHuntingImageHandle[_huntigdata_left.GetDBF_UnlockImageAddressablesAddress()].Status == AsyncOperationStatus.Succeeded) { - AI_Left.sprite = GameManager.BGDatabase.LoadUnlockHuntingImageHandle[_huntigdata_left.GetDBF_UnlockImageAddressablesAddress()].Result as Sprite; + AI_Right.sprite = AI_Left.sprite = GameManager.BGDatabase.LoadUnlockHuntingImageHandle[_huntigdata_left.GetDBF_UnlockImageAddressablesAddress()].Result as Sprite; } //NameTMP.text = huntingListData.DBF_Title; @@ -84,10 +85,10 @@ public class HuntingSlot : CardBase _huntigdata_right = DB_HuntingData.GetEntity(new BansheeGz.BGDatabase.BGId(_data_right.HuntingDataID)); - if (GameManager.BGDatabase.LoadUnlockHuntingImageHandle[_huntigdata_right.GetDBF_UnlockImageAddressablesAddress()].Status == AsyncOperationStatus.Succeeded) - { - AI_Right.sprite = GameManager.BGDatabase.LoadUnlockHuntingImageHandle[_huntigdata_right.GetDBF_UnlockImageAddressablesAddress()].Result as Sprite; - } + //if (GameManager.BGDatabase.LoadUnlockHuntingImageHandle[_huntigdata_right.GetDBF_UnlockImageAddressablesAddress()].Status == AsyncOperationStatus.Succeeded) + //{ + // AI_Right.sprite = GameManager.BGDatabase.LoadUnlockHuntingImageHandle[_huntigdata_right.GetDBF_UnlockImageAddressablesAddress()].Result as Sprite; + //} //AI_Right.sprite = GameManager.Resource.GetAISpriteFromResources(_data_right.TextureIndex); } @@ -124,15 +125,18 @@ public class HuntingSlot : CardBase gos_openbutton[1].SetActive(true); AI_Right.material = mat_blur; Block_Right.SetActive(true); + Heart_Right.SetActive(true); } else if (_data_right.n_Group > unlockTargetIndex_right) { // 잠김 Block_Right.SetActive(true); AI_Right.color = Color.black; + Heart_Right.SetActive(false); } else { // 열림 Block_Right.SetActive(false); + Heart_Right.SetActive(true); } } } diff --git a/Assets/UI/Animation/AlbumRightHeart.anim b/Assets/UI/Animation/AlbumRightHeart.anim new file mode 100644 index 0000000..7b25861 --- /dev/null +++ b/Assets/UI/Animation/AlbumRightHeart.anim @@ -0,0 +1,168 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: AlbumRightHeart + serializedVersion: 7 + m_Legacy: 1 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: {x: 1, y: 1, z: 1} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.5 + value: {x: 0.5, y: 0.5, z: 0.5} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + path: + m_FloatCurves: [] + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 4 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: [] + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.5 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 1 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.5 + value: 0.5 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalScale.x + path: + classID: 224 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.5 + value: 0.5 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalScale.y + path: + classID: 224 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.5 + value: 0.5 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalScale.z + path: + classID: 224 + script: {fileID: 0} + flags: 0 + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/UI/Animation/AlbumRightHeart.anim.meta b/Assets/UI/Animation/AlbumRightHeart.anim.meta new file mode 100644 index 0000000..6715c22 --- /dev/null +++ b/Assets/UI/Animation/AlbumRightHeart.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 49f73d0b4035dcd408b8fc44051a62c6 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: