diff --git a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Nomal/BlackTroll.prefab.meta b/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/BlackTroll.prefab.meta similarity index 100% rename from Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Nomal/BlackTroll.prefab.meta rename to Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/BlackTroll.prefab.meta diff --git a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Boss/BlackWerewolf.prefab b/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/BlackWerewolf.prefab similarity index 100% rename from Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Boss/BlackWerewolf.prefab rename to Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/BlackWerewolf.prefab diff --git a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Boss/BlackWerewolf.prefab.meta b/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/BlackWerewolf.prefab.meta similarity index 100% rename from Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Boss/BlackWerewolf.prefab.meta rename to Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/BlackWerewolf.prefab.meta diff --git a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Mid Boss/BlueRex.prefab b/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/BlueRex.prefab similarity index 100% rename from Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Mid Boss/BlueRex.prefab rename to Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/BlueRex.prefab diff --git a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Mid Boss/BlueRex.prefab.meta b/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/BlueRex.prefab.meta similarity index 100% rename from Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Mid Boss/BlueRex.prefab.meta rename to Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/BlueRex.prefab.meta diff --git a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Boss/BlueTroll.prefab b/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/BlueTroll.prefab similarity index 100% rename from Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Boss/BlueTroll.prefab rename to Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/BlueTroll.prefab diff --git a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Boss/BlueTroll.prefab.meta b/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/BlueTroll.prefab.meta similarity index 100% rename from Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Boss/BlueTroll.prefab.meta rename to Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/BlueTroll.prefab.meta diff --git a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Boss.meta b/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Boss.meta deleted file mode 100644 index 4a0c9969..00000000 --- a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Boss.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 616d067a52513694ca481247f775bc62 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Nomal/GreenOgre.prefab b/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/GreenOgre.prefab similarity index 100% rename from Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Nomal/GreenOgre.prefab rename to Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/GreenOgre.prefab diff --git a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Nomal/GreenOgre.prefab.meta b/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/GreenOgre.prefab.meta similarity index 100% rename from Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Nomal/GreenOgre.prefab.meta rename to Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/GreenOgre.prefab.meta diff --git a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Mid Boss/GreenPumpkin.prefab b/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/GreenPumpkin.prefab similarity index 100% rename from Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Mid Boss/GreenPumpkin.prefab rename to Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/GreenPumpkin.prefab diff --git a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Mid Boss/GreenPumpkin.prefab.meta b/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/GreenPumpkin.prefab.meta similarity index 100% rename from Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Mid Boss/GreenPumpkin.prefab.meta rename to Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/GreenPumpkin.prefab.meta diff --git a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Nomal/GreenRex.prefab b/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/GreenRex.prefab similarity index 100% rename from Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Nomal/GreenRex.prefab rename to Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/GreenRex.prefab diff --git a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Nomal/GreenRex.prefab.meta b/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/GreenRex.prefab.meta similarity index 100% rename from Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Nomal/GreenRex.prefab.meta rename to Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/GreenRex.prefab.meta diff --git a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Mid Boss/GreenTroll.prefab b/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/GreenTroll.prefab similarity index 100% rename from Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Mid Boss/GreenTroll.prefab rename to Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/GreenTroll.prefab diff --git a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Mid Boss/GreenTroll.prefab.meta b/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/GreenTroll.prefab.meta similarity index 100% rename from Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Mid Boss/GreenTroll.prefab.meta rename to Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/GreenTroll.prefab.meta diff --git a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/LastBoss.meta b/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/LastBoss.meta deleted file mode 100644 index 1411cd44..00000000 --- a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/LastBoss.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 538007106005a574b8912e62f777d038 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Mid Boss.meta b/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Mid Boss.meta deleted file mode 100644 index 28c52294..00000000 --- a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Mid Boss.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 27727760c76785949b436fd33685fd86 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Nomal.meta b/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Nomal.meta deleted file mode 100644 index 7fd96763..00000000 --- a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Nomal.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 94b015ea725e5da4096da41df540ac8d -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Nomal/BlackTroll.prefab b/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Nomal/BlackTroll.prefab deleted file mode 100644 index f5d4392f..00000000 --- a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Nomal/BlackTroll.prefab +++ /dev/null @@ -1,643 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &1342664882880856222 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8588915526847560493} - - component: {fileID: 7341249599799714319} - - component: {fileID: 8316546459892616994} - m_Layer: 3 - m_Name: Hp - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &8588915526847560493 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1342664882880856222} - 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: 3806437718625476131} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: -0.00000023841858, y: 0.00000023841858} - m_SizeDelta: {x: 2.9522, y: 0.3064} - m_Pivot: {x: 0, y: 0.5} ---- !u!222 &7341249599799714319 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1342664882880856222} - m_CullTransparentMesh: 1 ---- !u!114 &8316546459892616994 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1342664882880856222} - 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: 0, b: 0, 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: 0} - 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 &1824938196022665753 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8233097455695040023} - - component: {fileID: 6768085599137241520} - - component: {fileID: 2777078016143330253} - m_Layer: 3 - m_Name: Eyesight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8233097455695040023 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1824938196022665753} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 9, y: 1, z: 11} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 4522428252352058427} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!58 &6768085599137241520 -CircleCollider2D: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1824938196022665753} - 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: 1 - m_UsedByEffector: 0 - m_UsedByComposite: 0 - m_Offset: {x: 0, y: 0} - serializedVersion: 2 - m_Radius: 1 ---- !u!114 &2777078016143330253 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1824938196022665753} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0eeefb865ea9d4749bbb4de3d1100f3e, type: 3} - m_Name: - m_EditorClassIdentifier: - _monsterBase: {fileID: 4707985683249688333} ---- !u!1 &3369157119847235756 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3806437718625476131} - - component: {fileID: 3280851039149585887} - - component: {fileID: 32222485337476293} - m_Layer: 3 - m_Name: HpBackground - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3806437718625476131 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3369157119847235756} - 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: 8588915526847560493} - m_Father: {fileID: 2494811353512019803} - 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.3355, y: 3.26} - m_SizeDelta: {x: 2.9522, y: 0.3064} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &3280851039149585887 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3369157119847235756} - m_CullTransparentMesh: 1 ---- !u!114 &32222485337476293 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3369157119847235756} - 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: 0} - 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 &4212413503337481881 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4522428252352058427} - - component: {fileID: 5636364246843047355} - - component: {fileID: 6630971208790554073} - - component: {fileID: 1937602755592253170} - - component: {fileID: 8193311856622011356} - - component: {fileID: 3755389356996766134} - - component: {fileID: 4593226769141903835} - - component: {fileID: 4707985683249688333} - m_Layer: 3 - m_Name: BlackTroll - m_TagString: Monster - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4522428252352058427 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4212413503337481881} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 12.15, y: -8.27, z: 0.060982164} - m_LocalScale: {x: 0.7, y: 0.7, z: 0.7} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 8233097455695040023} - - {fileID: 8768173046820514165} - - {fileID: 2494811353512019803} - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!212 &5636364246843047355 -SpriteRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4212413503337481881} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 0 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 0 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_Sprite: {fileID: 4723107735738678597, guid: bcbbef56a1b541009f884abefb133b11, type: 3} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_FlipX: 1 - m_FlipY: 0 - m_DrawMode: 0 - m_Size: {x: 8, y: 8} - m_AdaptiveModeThreshold: 0.5 - m_SpriteTileMode: 0 - m_WasSpriteAssigned: 1 - m_MaskInteraction: 0 - m_SpriteSortPoint: 0 ---- !u!114 &6630971208790554073 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4212413503337481881} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: c29cff538c195c249b69c6f2236de67b, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Library: [] - m_SpriteLibraryAsset: {fileID: 7108339969198208228, guid: 74d9c7111be66834895cd23526f9bc77, type: 3} ---- !u!114 &1937602755592253170 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4212413503337481881} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ed8b1ae4e4e52b34ea557c1c11e076fc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_CategoryHash: 0.009161512 - m_labelHash: 1.3971405e-28 - m_SpriteKey: 0 - m_SpriteHash: 163368403 ---- !u!70 &8193311856622011356 -CapsuleCollider2D: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4212413503337481881} - 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: 1.5} - m_Size: {x: 3, y: 3.2} - m_Direction: 0 ---- !u!50 &3755389356996766134 -Rigidbody2D: - serializedVersion: 4 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4212413503337481881} - m_BodyType: 0 - m_Simulated: 1 - m_UseFullKinematicContacts: 0 - m_UseAutoMass: 0 - m_Mass: 1 - m_LinearDrag: 0 - m_AngularDrag: 10 - m_GravityScale: 1 - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_Interpolate: 0 - m_SleepingMode: 1 - m_CollisionDetection: 0 - m_Constraints: 4 ---- !u!95 &4593226769141903835 -Animator: - serializedVersion: 5 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4212413503337481881} - m_Enabled: 1 - m_Avatar: {fileID: 0} - m_Controller: {fileID: 9100000, guid: c2be6a32c13b7d24fb2d789462ff8e2f, type: 2} - m_CullingMode: 0 - m_UpdateMode: 0 - m_ApplyRootMotion: 0 - m_LinearVelocityBlending: 0 - m_StabilizeFeet: 0 - m_WarningMessage: - m_HasTransformHierarchy: 1 - m_AllowConstantClipSamplingOptimization: 1 - m_KeepAnimatorStateOnDisable: 0 - m_WriteDefaultValuesOnDisable: 0 ---- !u!114 &4707985683249688333 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4212413503337481881} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d5b05a0586cd17f47a3c35acaac06e0f, type: 3} - m_Name: - m_EditorClassIdentifier: - _target: {fileID: 0} - _collider: {fileID: 6768085599137241520} - _spriteRenderer: {fileID: 5636364246843047355} - _textState: {fileID: 0} - id: 0 - defencePower: 10 - defenceIntention: 30 - _hpBarImage: {fileID: 0} ---- !u!1 &5517639527144806737 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8768173046820514165} - - component: {fileID: 8111482399369284950} - - component: {fileID: 534568266464302360} - m_Layer: 3 - m_Name: AttackRange - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8768173046820514165 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5517639527144806737} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 9, y: 1, z: 11} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 4522428252352058427} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!58 &8111482399369284950 -CircleCollider2D: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5517639527144806737} - 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: 1 - m_UsedByEffector: 0 - m_UsedByComposite: 0 - m_Offset: {x: 0, y: 0} - serializedVersion: 2 - m_Radius: 0.5 ---- !u!114 &534568266464302360 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5517639527144806737} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0913d8f50c531ce4585705c1366b8351, type: 3} - m_Name: - m_EditorClassIdentifier: - _monsterBase: {fileID: 4707985683249688333} ---- !u!1 &6961622495070510740 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2494811353512019803} - - component: {fileID: 4511828911534615108} - - component: {fileID: 6868299405778376069} - - component: {fileID: 2547895694325741063} - m_Layer: 3 - m_Name: Canvas - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2494811353512019803 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6961622495070510740} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.060982164} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 3806437718625476131} - m_Father: {fileID: 4522428252352058427} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: -0.49759865, y: 0} - m_SizeDelta: {x: 1895.1191, y: 1080} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!223 &4511828911534615108 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6961622495070510740} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 2 - m_Camera: {fileID: 0} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 - m_AdditionalShaderChannelsFlag: 0 - m_UpdateRectTransformForStandalone: 0 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!114 &6868299405778376069 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6961622495070510740} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 0 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 800, y: 600} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 0 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 1 ---- !u!114 &2547895694325741063 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6961622495070510740} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 55 diff --git a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Nomal/PurplePumpkin.prefab b/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/PurplePumpkin.prefab similarity index 100% rename from Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Nomal/PurplePumpkin.prefab rename to Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/PurplePumpkin.prefab diff --git a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Nomal/PurplePumpkin.prefab.meta b/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/PurplePumpkin.prefab.meta similarity index 100% rename from Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Nomal/PurplePumpkin.prefab.meta rename to Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/PurplePumpkin.prefab.meta diff --git a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/LastBoss/RedDragon.prefab b/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/RedDragon.prefab similarity index 100% rename from Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/LastBoss/RedDragon.prefab rename to Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/RedDragon.prefab diff --git a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/LastBoss/RedDragon.prefab.meta b/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/RedDragon.prefab.meta similarity index 100% rename from Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/LastBoss/RedDragon.prefab.meta rename to Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/RedDragon.prefab.meta diff --git a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Nomal/RedOgre.prefab b/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/RedOgre.prefab similarity index 100% rename from Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Nomal/RedOgre.prefab rename to Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/RedOgre.prefab diff --git a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Nomal/RedOgre.prefab.meta b/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/RedOgre.prefab.meta similarity index 100% rename from Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Nomal/RedOgre.prefab.meta rename to Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/RedOgre.prefab.meta diff --git a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Boss/RedRex.prefab b/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/RedRex.prefab similarity index 100% rename from Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Boss/RedRex.prefab rename to Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/RedRex.prefab diff --git a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Boss/RedRex.prefab.meta b/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/RedRex.prefab.meta similarity index 100% rename from Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Boss/RedRex.prefab.meta rename to Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/RedRex.prefab.meta diff --git a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Nomal/YellowPumpkin.prefab b/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/YellowPumpkin.prefab similarity index 100% rename from Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Nomal/YellowPumpkin.prefab rename to Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/YellowPumpkin.prefab diff --git a/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Nomal/YellowPumpkin.prefab.meta b/Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/YellowPumpkin.prefab.meta similarity index 100% rename from Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/Nomal/YellowPumpkin.prefab.meta rename to Gameton-06/Assets/Gameton/Resources/MonsterPrefabs/YellowPumpkin.prefab.meta diff --git a/Gameton-06/Assets/Gameton/Scenes/Stage 4.unity b/Gameton-06/Assets/Gameton/Scenes/Stage 4.unity index 840472fb..ba9c5517 100644 --- a/Gameton-06/Assets/Gameton/Scenes/Stage 4.unity +++ b/Gameton-06/Assets/Gameton/Scenes/Stage 4.unity @@ -18124,7 +18124,7 @@ GameObject: - component: {fileID: 1057011346} m_Layer: 9 m_Name: Tilemap untagged - m_TagString: Untagged + m_TagString: Ground m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 @@ -19771,9 +19771,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 481676f31fc794c4b93848b442416f2c, type: 3} m_Name: m_EditorClassIdentifier: - _monsterLocations: [] - _monsterId: - _spawnDistance: 10 + spawnPoints: + - {fileID: 1877559506} + - {fileID: 897622737} + currentWave: 0 + waveDataArray: + - monsterPrefabA: {fileID: 9096056522544909490, guid: 53f5c583c440aa546bde473536a2ead1, type: 3} + monsterPrefabB: {fileID: 5532926939721588456, guid: b4cf92d97c6e476458cfc19779d644d0, type: 3} + bossPrefab: {fileID: 552750714948243596, guid: b5a25c8b3779cf64fb2ce4137b923934, type: 3} + - monsterPrefabA: {fileID: 1572774641510885509, guid: 9e33f09b69def354b97c2dab989ff5a0, type: 3} + monsterPrefabB: {fileID: 3763998402670485858, guid: 2151274950f0a5848b4a51f328ef6a76, type: 3} + bossPrefab: {fileID: 8816565783318691943, guid: 6aa4e890ef61e8340a0913d21ef8b769, type: 3} + - monsterPrefabA: {fileID: 5723786479962814242, guid: 32e162a1c8f5e97418bfde9de9a34472, type: 3} + monsterPrefabB: {fileID: 7872183108645210487, guid: a1014c89b622fee45b5d0bf0db78b302, type: 3} + bossPrefab: {fileID: 4336427122757065448, guid: 69c66b62d5d42aa48b34c97c6131188f, type: 3} + - monsterPrefabA: {fileID: 0} + monsterPrefabB: {fileID: 0} + bossPrefab: {fileID: 3667660097767351871, guid: ef14281ca23119941b755a7bff7ff6c8, type: 3} --- !u!4 &1103604663 Transform: m_ObjectHideFlags: 0 diff --git a/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterBase.cs b/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterBase.cs index a7aa11e2..1a8de118 100644 --- a/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterBase.cs +++ b/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterBase.cs @@ -99,6 +99,7 @@ namespace TON if (prevHP > 0 && currentHP <= 0) { _stateMachine.SetTransition(new DeathState()); + //TODO : 현재 웨이브 값, 경험치, 골드 MonsterSpawner.WaveData; } else if (prevHP > 0 && currentHP > 0) { diff --git a/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterSpawner.cs b/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterSpawner.cs index 6b5988d4..38547427 100644 --- a/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterSpawner.cs +++ b/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterSpawner.cs @@ -1,3 +1,4 @@ +using System.Collections; using System.Collections.Generic; using UnityEngine; @@ -5,148 +6,162 @@ namespace TON { public class MonsterSpawner : MonoBehaviour { - [SerializeField] - private List _monsterLocations = new List(); - [SerializeField] - private List _monsterId = new List(); - [SerializeField] - private float _spawnDistance = 10f; - - private CharacterBase _player; - private List _spawnedMonsters = new List(); - private Dictionary _spawnPoints = new Dictionary(); + public Transform[] spawnPoints; // 스폰 위치 배열 - private void Start() + private List monsterPool; // 몬스터 오브젝트 풀 + private List availableSpawnPoints; // 스폰 가능한 위치 인덱스 리스트 + + public int currentWave = 0; + private const int TOTAL_WAVES = 10; + private const int NORMAL_MONSTER_COUNT = 6; + + private float nextWaveDelay = 5f; // 다음 웨이브 시작 전 대기 시간 + private bool isWaitingForNextWave = false; + + [System.Serializable] + public class WaveData { - InitializeSpawner(); + public GameObject monsterPrefabA; // 첫 번째 일반 몬스터 프리팹 + public GameObject monsterPrefabB; // 두 번째 일반 몬스터 프리팹 + public GameObject bossPrefab; // 보스 몬스터 프리팹 } - - private void InitializeSpawner() + + public WaveData[] waveDataArray; // 크기 4로 설정 (1-3웨이브, 4-6웨이브, 7-9웨이브, 10웨이브) + + private List activeMonsters; // 현재 활성화된 몬스터 리스트 + + // Start is called before the first frame update + void Start() { - // 플레이어 찾기 - GameObject playerObj = GameObject.FindGameObjectWithTag("Player"); - if (playerObj != null) + monsterPool = new List(); + availableSpawnPoints = new List(); + activeMonsters = new List(); + + StartNextWave(); + } + + // Update is called once per frame + void Update() + { + // 활성화된 몬스터 리스트에서 파괴된 몬스터 제거 + activeMonsters.RemoveAll(monster => monster == null); + + // 모든 몬스터가 죽었는지 확인하고 다음 웨이브 준비 + if (activeMonsters.Count == 0 && currentWave > 0 && !isWaitingForNextWave) { - _player = playerObj.GetComponent(); - Debug.Log("플레이어 찾음: " + playerObj.name); - } - - // 스폰 포인트 초기화 - foreach (var location in _monsterLocations) - { - if (location != null) - { - _spawnPoints[location] = false; - Debug.Log($"스폰 포인트 초기화: {location.name}"); - } + isWaitingForNextWave = true; + StartCoroutine(StartNextWaveWithDelay()); } } - - private void Update() + + private void SpawnBossMonster() { - if (_player == null) return; - - CheckSpawnConditions(); + // 랜덤한 스폰 포인트 선택 + int spawnPointIndex = Random.Range(0, spawnPoints.Length); + GameObject bossPrefab = GetBossPrefabForWave(currentWave); + + GameObject boss = Instantiate(bossPrefab, spawnPoints[spawnPointIndex].position, Quaternion.identity); + monsterPool.Add(boss); + activeMonsters.Add(boss); + + // 보스 웨이브에서는 자동으로 다음 웨이브로 넘어가지 않음 + // 보스가 죽으면 Update에서 체크하여 다음 웨이브로 넘어감 } - - private void CheckSpawnConditions() + + private void StartNextWave() { - for (int i = 0; i < _monsterLocations.Count; i++) + currentWave++; + if (currentWave > TOTAL_WAVES) { - Transform spawnPoint = _monsterLocations[i]; - if (spawnPoint == null || _spawnPoints[spawnPoint]) continue; - - float distance = Vector2.Distance(_player.transform.position, spawnPoint.position); - if (distance <= _spawnDistance) - { - SpawnMonster(i); - _spawnPoints[spawnPoint] = true; - } - } - } - - private void SpawnMonster(int index) - { - if (index >= _monsterId.Count) - { - Debug.LogError($"유효하지 않은 인덱스: {index}"); + // Debug.Log("모든 웨이브 완료!"); return; } - try + // 스폰 포인트 초기화 + availableSpawnPoints.Clear(); + for (int i = 0; i < spawnPoints.Length; i++) { - int monsterId = _monsterId[index]; - - // MonsterDataManager에서 데이터 가져오기 - MonsterData monsterData = MonsterDataManager.Singleton.GetMonsterData(monsterId); - if (monsterData == null) - { - Debug.LogError($"몬스터 ID {monsterId}에 대한 데이터를 찾을 수 없습니다."); - return; - } - - // 몬스터 프리팹 경로 결정 - string prefabPath = GetMonsterPrefabPath(monsterData); - - // 프리팹 로드 - MonsterBase monsterPrefab = Resources.Load(prefabPath); - if (monsterPrefab == null) - { - Debug.LogError($"몬스터 프리팹을 찾을 수 없습니다: {prefabPath}"); - return; - } - - // 몬스터 생성 - Vector3 spawnPosition = _monsterLocations[index].position; - MonsterBase newMonster = Instantiate(monsterPrefab, spawnPosition, Quaternion.identity); - - // 몬스터 초기화 - newMonster.id = monsterId; - _spawnedMonsters.Add(newMonster); - - Debug.Log($"몬스터 생성 완료: ID {monsterId}, 위치 {spawnPosition}"); + availableSpawnPoints.Add(i); } - catch (System.Exception e) + + // 현재 웨이브에 따른 몬스터 스폰 + if (IsBossWave(currentWave)) { - Debug.LogError($"몬스터 생성 중 오류 발생: {e.Message}"); + SpawnBossMonster(); + } + else + { + SpawnNormalMonsters(); } } - - private string GetMonsterPrefabPath(MonsterData monsterData) + + private bool IsBossWave(int wave) { - // 몬스터 데이터에 따른 프리팹 경로 결정 - string basePath = "MonsterPrefabs/"; - - // 일반 몬스터인 경우 - if (monsterData.id == 6) + return wave == 3 || wave == 6 || wave == 9 || wave == 10; + } + + private GameObject GetBossPrefabForWave(int wave) + { + switch (wave) { - return basePath + "Nomal/BlackTroll"; + case 3: return waveDataArray[0].bossPrefab; // 첫 번째 보스 + case 6: return waveDataArray[1].bossPrefab; // 두 번째 보스 + case 9: return waveDataArray[2].bossPrefab; // 세 번째 보스 + case 10: return waveDataArray[3].bossPrefab; // 최종 보스 + default: return null; + } + } + + private void SpawnNormalMonsters() + { + if (currentWave == 7 || currentWave == 8) + { + for (int i = 0; i < NORMAL_MONSTER_COUNT + 2; i++) + { + foreach (Transform spawnPoint in spawnPoints) + { + GameObject normalMonster = Instantiate(GetNormalMonsterPrefab(), spawnPoint.position, Quaternion.identity); + monsterPool.Add(normalMonster); + activeMonsters.Add(normalMonster); + } + } + } + else + { + // 각 스폰 포인트에 일반 몬스터 6마리씩 한 번만 스폰 + for (int i = 0; i < NORMAL_MONSTER_COUNT; i++) + { + foreach (Transform spawnPoint in spawnPoints) + { + GameObject normalMonster = Instantiate(GetNormalMonsterPrefab(), spawnPoint.position, Quaternion.identity); + monsterPool.Add(normalMonster); + activeMonsters.Add(normalMonster); + } + } } - // 기타 몬스터들 - Dictionary monsterNames = new Dictionary - { - { 1, "BlueDragon" }, - { 2, "BrownWerewolf" }, - { 3, "GreenDragon" }, - { 4, "PurpleOgre" }, - { 5, "RedWerewolf" } - }; - - if (monsterNames.TryGetValue(monsterData.id, out string monsterName)) - { - return basePath + monsterName; - } - - throw new System.Exception($"알 수 없는 몬스터 ID: {monsterData.id}"); + // 일반 웨이브에서는 자동으로 다음 웨이브로 넘어가지 않음 + // 몬스터가 모두 죽으면 Update에서 체크하여 다음 웨이브로 넘어감 } - public void OnMonsterDestroyed(MonsterBase monster) + private GameObject GetNormalMonsterPrefab() { - if (_spawnedMonsters.Contains(monster)) - { - _spawnedMonsters.Remove(monster); - } + // 현재 웨이브에 해당하는 일반 몬스터 프리팹 반환 + int waveSetIndex = (currentWave - 1) / 3; // 웨이브 세트 인덱스 (0-2) + + // 각 세트의 두 번째 웨이브인 경우 monsterPrefabB 반환 + bool isSecondWave = (currentWave % 3) == 2; + + return isSecondWave ? + waveDataArray[waveSetIndex].monsterPrefabB : + waveDataArray[waveSetIndex].monsterPrefabA; + } + + private IEnumerator StartNextWaveWithDelay() + { + yield return new WaitForSeconds(nextWaveDelay); + isWaitingForNextWave = false; + StartNextWave(); } } }