Commit 5c66ced5 authored by 18손재민's avatar 18손재민

이제 모든 적이 죽으면 방이 클리어됨. 포탈 생성 수정중

parents 9f27e305 6f7548ef
...@@ -32,7 +32,7 @@ AnimatorController: ...@@ -32,7 +32,7 @@ AnimatorController:
m_DefaultInt: 0 m_DefaultInt: 0
m_DefaultBool: 0 m_DefaultBool: 0
m_Controller: {fileID: 0} m_Controller: {fileID: 0}
- m_Name: knockbackDistance - m_Name: knockbackTime
m_Type: 1 m_Type: 1
m_DefaultFloat: 0 m_DefaultFloat: 0
m_DefaultInt: 0 m_DefaultInt: 0
...@@ -287,7 +287,7 @@ AnimatorState: ...@@ -287,7 +287,7 @@ AnimatorState:
m_SpeedParameter: m_SpeedParameter:
m_MirrorParameter: m_MirrorParameter:
m_CycleOffsetParameter: m_CycleOffsetParameter:
m_TimeParameter: m_TimeParameter: knockbackTime
--- !u!1102 &1102455672269219010 --- !u!1102 &1102455672269219010
AnimatorState: AnimatorState:
serializedVersion: 5 serializedVersion: 5
...@@ -314,7 +314,7 @@ AnimatorState: ...@@ -314,7 +314,7 @@ AnimatorState:
m_SpeedParameter: m_SpeedParameter:
m_MirrorParameter: m_MirrorParameter:
m_CycleOffsetParameter: m_CycleOffsetParameter:
m_TimeParameter: knockbackDistance m_TimeParameter: knockbackTime
--- !u!1102 &1102828359910447394 --- !u!1102 &1102828359910447394
AnimatorState: AnimatorState:
serializedVersion: 5 serializedVersion: 5
......
...@@ -11,6 +11,52 @@ Prefab: ...@@ -11,6 +11,52 @@ Prefab:
m_SourcePrefab: {fileID: 0} m_SourcePrefab: {fileID: 0}
m_RootGameObject: {fileID: 1915452461634262} m_RootGameObject: {fileID: 1915452461634262}
m_IsPrefabAsset: 1 m_IsPrefabAsset: 1
--- !u!1 &1007840319863528
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 6
m_Component:
- component: {fileID: 4546795586742468}
m_Layer: 0
m_Name: enemy spot
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &1124637384100458
GameObject:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 6
m_Component:
- component: {fileID: 4334623205686684}
m_Layer: 0
m_Name: Location
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &1276568354572690
GameObject:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 6
m_Component:
- component: {fileID: 4054145534218116}
- component: {fileID: 114782628463349330}
m_Layer: 0
m_Name: Goblin
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &1306147373330598 --- !u!1 &1306147373330598
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
...@@ -51,6 +97,21 @@ GameObject: ...@@ -51,6 +97,21 @@ GameObject:
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &1646302870988242
GameObject:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 6
m_Component:
- component: {fileID: 4372487440442684}
m_Layer: 0
m_Name: Location (1)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &1657725642800636 --- !u!1 &1657725642800636
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
...@@ -124,6 +185,21 @@ GameObject: ...@@ -124,6 +185,21 @@ GameObject:
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!4 &4054145534218116
Transform:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1276568354572690}
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_Children:
- {fileID: 4334623205686684}
- {fileID: 4372487440442684}
m_Father: {fileID: 4546795586742468}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4152337674201398 --- !u!4 &4152337674201398
Transform: Transform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
...@@ -137,6 +213,32 @@ Transform: ...@@ -137,6 +213,32 @@ Transform:
m_Father: {fileID: 4874486600194970} m_Father: {fileID: 4874486600194970}
m_RootOrder: 4 m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4334623205686684
Transform:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1124637384100458}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 2.5, y: 9, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 4054145534218116}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4372487440442684
Transform:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1646302870988242}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 2.5, y: 17, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 4054145534218116}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4453118840796536 --- !u!4 &4453118840796536
Transform: Transform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
...@@ -150,6 +252,20 @@ Transform: ...@@ -150,6 +252,20 @@ Transform:
m_Father: {fileID: 4874486600194970} m_Father: {fileID: 4874486600194970}
m_RootOrder: 1 m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4546795586742468
Transform:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1007840319863528}
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_Children:
- {fileID: 4054145534218116}
m_Father: {fileID: 4874486600194970}
m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4557338679182532 --- !u!4 &4557338679182532
Transform: Transform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
...@@ -191,6 +307,7 @@ Transform: ...@@ -191,6 +307,7 @@ Transform:
- {fileID: 4925861857805118} - {fileID: 4925861857805118}
- {fileID: 4802276979595092} - {fileID: 4802276979595092}
- {fileID: 4152337674201398} - {fileID: 4152337674201398}
- {fileID: 4546795586742468}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
......
...@@ -34,7 +34,7 @@ Transform: ...@@ -34,7 +34,7 @@ Transform:
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1704656476422024} m_GameObject: {fileID: 1704656476422024}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -2} m_LocalPosition: {x: 48, y: 0, z: -2}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
......
...@@ -22,7 +22,7 @@ GameObject: ...@@ -22,7 +22,7 @@ GameObject:
- component: {fileID: 212036764786901468} - component: {fileID: 212036764786901468}
- component: {fileID: 61850414438817898} - component: {fileID: 61850414438817898}
- component: {fileID: 114406776515389056} - component: {fileID: 114406776515389056}
m_Layer: 13 m_Layer: 18
m_Name: Portal m_Name: Portal
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
......
...@@ -158,7 +158,7 @@ Prefab: ...@@ -158,7 +158,7 @@ Prefab:
- target: {fileID: 224393982547383572, guid: 692aad2449e06054799ea4706578fb23, - target: {fileID: 224393982547383572, guid: 692aad2449e06054799ea4706578fb23,
type: 2} type: 2}
propertyPath: m_RootOrder propertyPath: m_RootOrder
value: 14 value: 13
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 224393982547383572, guid: 692aad2449e06054799ea4706578fb23, - target: {fileID: 224393982547383572, guid: 692aad2449e06054799ea4706578fb23,
type: 2} type: 2}
...@@ -670,6 +670,11 @@ Prefab: ...@@ -670,6 +670,11 @@ Prefab:
m_RemovedComponents: [] m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: afe4a2cb44239b649a3ffa70af5c2d84, type: 2} m_SourcePrefab: {fileID: 100100000, guid: afe4a2cb44239b649a3ffa70af5c2d84, type: 2}
m_IsPrefabAsset: 0 m_IsPrefabAsset: 0
--- !u!224 &784215598 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 224627740379736590, guid: 799f0e9cc16535e449586b399b37aa56,
type: 2}
m_PrefabInternal: {fileID: 677608594}
--- !u!1 &826079602 --- !u!1 &826079602
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
...@@ -732,6 +737,134 @@ Transform: ...@@ -732,6 +737,134 @@ Transform:
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 6 m_RootOrder: 6
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1148854461
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 1635164560723902, guid: 799f0e9cc16535e449586b399b37aa56,
type: 2}
m_PrefabInternal: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1148854462}
- component: {fileID: 1148854465}
- component: {fileID: 1148854464}
- component: {fileID: 1148854463}
m_Layer: 5
m_Name: SummonEnemyButton
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1148854462
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 224799334850716618, guid: 799f0e9cc16535e449586b399b37aa56,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1148854461}
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_Children:
- {fileID: 1931263425}
m_Father: {fileID: 784215598}
m_RootOrder: 13
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -92, y: -497.7}
m_SizeDelta: {x: 154.8, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1148854463
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 114069666699939228, guid: 799f0e9cc16535e449586b399b37aa56,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1148854461}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 1148854464}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 1985083923}
m_MethodName: SpawnEnemyToMap
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null
--- !u!114 &1148854464
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 114935985951632436, guid: 799f0e9cc16535e449586b399b37aa56,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1148854461}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 10905, 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
--- !u!222 &1148854465
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 222640117483477652, guid: 799f0e9cc16535e449586b399b37aa56,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1148854461}
m_CullTransparentMesh: 0
--- !u!1 &1159748689 --- !u!1 &1159748689
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
...@@ -1456,53 +1589,96 @@ MonoBehaviour: ...@@ -1456,53 +1589,96 @@ MonoBehaviour:
type: 2} type: 2}
m_PrefabInternal: {fileID: 1317359797} m_PrefabInternal: {fileID: 1317359797}
m_Script: {fileID: 11500000, guid: 674793b622d7c184882dfeb8784bbf92, type: 3} m_Script: {fileID: 11500000, guid: 674793b622d7c184882dfeb8784bbf92, type: 3}
--- !u!1001 &1909649316 --- !u!1 &1931263424
Prefab: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 2 m_CorrespondingSourceObject: {fileID: 1063244425464928, guid: 799f0e9cc16535e449586b399b37aa56,
m_Modification: type: 2}
m_TransformParent: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_Modifications: serializedVersion: 6
- target: {fileID: 4639192263818050, guid: a164c147037e89448820f7387c724c42, type: 2} m_Component:
propertyPath: m_LocalPosition.x - component: {fileID: 1931263425}
value: 6.01 - component: {fileID: 1931263427}
objectReference: {fileID: 0} - component: {fileID: 1931263426}
- target: {fileID: 4639192263818050, guid: a164c147037e89448820f7387c724c42, type: 2} m_Layer: 5
propertyPath: m_LocalPosition.y m_Name: Text
value: 2.009 m_TagString: Untagged
objectReference: {fileID: 0} m_Icon: {fileID: 0}
- target: {fileID: 4639192263818050, guid: a164c147037e89448820f7387c724c42, type: 2} m_NavMeshLayer: 0
propertyPath: m_LocalPosition.z m_StaticEditorFlags: 0
value: 0 m_IsActive: 1
objectReference: {fileID: 0} --- !u!224 &1931263425
- target: {fileID: 4639192263818050, guid: a164c147037e89448820f7387c724c42, type: 2} RectTransform:
propertyPath: m_LocalRotation.x m_ObjectHideFlags: 0
value: -0 m_CorrespondingSourceObject: {fileID: 224433513092310386, guid: 799f0e9cc16535e449586b399b37aa56,
objectReference: {fileID: 0} type: 2}
- target: {fileID: 4639192263818050, guid: a164c147037e89448820f7387c724c42, type: 2} m_PrefabInternal: {fileID: 0}
propertyPath: m_LocalRotation.y m_GameObject: {fileID: 1931263424}
value: -0 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
objectReference: {fileID: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
- target: {fileID: 4639192263818050, guid: a164c147037e89448820f7387c724c42, type: 2} m_LocalScale: {x: 1, y: 1, z: 1}
propertyPath: m_LocalRotation.z m_Children: []
value: -0 m_Father: {fileID: 1148854462}
objectReference: {fileID: 0} m_RootOrder: 0
- target: {fileID: 4639192263818050, guid: a164c147037e89448820f7387c724c42, type: 2} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
propertyPath: m_LocalRotation.w m_AnchorMin: {x: 0, y: 0}
value: 1 m_AnchorMax: {x: 1, y: 1}
objectReference: {fileID: 0} m_AnchoredPosition: {x: 0, y: 0}
- target: {fileID: 4639192263818050, guid: a164c147037e89448820f7387c724c42, type: 2} m_SizeDelta: {x: 0, y: 0}
propertyPath: m_RootOrder m_Pivot: {x: 0.5, y: 0.5}
value: 13 --- !u!114 &1931263426
objectReference: {fileID: 0} MonoBehaviour:
m_RemovedComponents: [] m_ObjectHideFlags: 0
m_SourcePrefab: {fileID: 100100000, guid: a164c147037e89448820f7387c724c42, type: 2} m_CorrespondingSourceObject: {fileID: 114747223387130412, guid: 799f0e9cc16535e449586b399b37aa56,
m_IsPrefabAsset: 0 type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1931263424}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 14
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: SummonEnemy
--- !u!222 &1931263427
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 222267971390068440, guid: 799f0e9cc16535e449586b399b37aa56,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1931263424}
m_CullTransparentMesh: 0
--- !u!223 &1950607614 stripped --- !u!223 &1950607614 stripped
Canvas: Canvas:
m_CorrespondingSourceObject: {fileID: 223008133952041092, guid: 7c6db9a9ca4150a438bd5114c58a37cf, m_CorrespondingSourceObject: {fileID: 223008133952041092, guid: 7c6db9a9ca4150a438bd5114c58a37cf,
type: 2} type: 2}
m_PrefabInternal: {fileID: 225935757} m_PrefabInternal: {fileID: 225935757}
--- !u!114 &1985083923 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 114768470604838176, guid: 54c1a7b414e41724197333a9e17dd49b,
type: 2}
m_PrefabInternal: {fileID: 1184292066}
m_Script: {fileID: 11500000, guid: fc7c7899a8a94c24cb9eb34d432133ce, type: 3}
--- !u!1001 &2042136941 --- !u!1001 &2042136941
Prefab: Prefab:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
......
...@@ -11,9 +11,8 @@ public class AttackProperty : MonoBehaviour{ ...@@ -11,9 +11,8 @@ public class AttackProperty : MonoBehaviour{
private void OnTriggerEnter2D(Collider2D collision) private void OnTriggerEnter2D(Collider2D collision)
{ {
if (collision.CompareTag("Enemy") && !collision.transform.GetChild(0).GetComponent<Enemy>().untouchable) if (collision.CompareTag("Enemy") && !collision.transform.GetChild(0).GetComponent<Enemy>().Invisible)
{ {
Debug.Log(damage);
PlayerAttackInfo curAttack = new PlayerAttackInfo(damage, knockBackMultiplier, debuffNum, debuffType, debuffTime); PlayerAttackInfo curAttack = new PlayerAttackInfo(damage, knockBackMultiplier, debuffNum, debuffType, debuffTime);
Enemy enemyInfo = collision.transform.GetChild(0).GetComponent<Enemy>(); Enemy enemyInfo = collision.transform.GetChild(0).GetComponent<Enemy>();
collision.transform.GetChild(0).GetComponent<Enemy>().GetDamaged(curAttack); collision.transform.GetChild(0).GetComponent<Enemy>().GetDamaged(curAttack);
......
...@@ -24,7 +24,7 @@ public class EnemyDamaged : StateMachineBehaviour { ...@@ -24,7 +24,7 @@ public class EnemyDamaged : StateMachineBehaviour {
} }
knockbackSpeed = animator.GetFloat("knockbackDistance") / knockbackTime; knockbackSpeed = animator.GetFloat("knockbackDistance") / knockbackTime;
Transform playerTransform = EnemyManager.Instance.player.transform; Transform playerTransform = EnemyManager.Instance.Player.transform;
pivotTransform = animator.transform.parent; pivotTransform = animator.transform.parent;
pivotTransform.eulerAngles = (playerTransform.position.x - pivotTransform.position.x < 0) ? leftsideAngle : rightsideAngle; pivotTransform.eulerAngles = (playerTransform.position.x - pivotTransform.position.x < 0) ? leftsideAngle : rightsideAngle;
knockbackDir = (playerTransform.position.x - pivotTransform.position.x < 0) ? 1 : -1; knockbackDir = (playerTransform.position.x - pivotTransform.position.x < 0) ? 1 : -1;
......
...@@ -24,7 +24,7 @@ public class EnemyMeleeIdle : StateMachineBehaviour { ...@@ -24,7 +24,7 @@ public class EnemyMeleeIdle : StateMachineBehaviour {
// OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks // OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks
override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) {
if (animator.GetComponent<Enemy>().playerDistance < noticeRange) if (animator.GetComponent<Enemy>().PlayerDistance < noticeRange)
{ {
animator.SetTrigger("TrackTrigger"); animator.SetTrigger("TrackTrigger");
return; return;
......
...@@ -16,7 +16,7 @@ public class EnemyMeleeTrack : StateMachineBehaviour { ...@@ -16,7 +16,7 @@ public class EnemyMeleeTrack : StateMachineBehaviour {
override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) {
trackSpeed = animator.GetComponent<Enemy>().trackSpeed; trackSpeed = animator.GetComponent<Enemy>().trackSpeed;
attackRange = animator.GetComponent<Enemy>().attackRange; attackRange = animator.GetComponent<Enemy>().attackRange;
player = EnemyManager.Instance.player; player = EnemyManager.Instance.Player;
pivotTransform = animator.transform.parent; pivotTransform = animator.transform.parent;
float halfHeight = pivotTransform.gameObject.GetComponent<BoxCollider2D>().size.y / 2.0f; float halfHeight = pivotTransform.gameObject.GetComponent<BoxCollider2D>().size.y / 2.0f;
...@@ -26,7 +26,7 @@ public class EnemyMeleeTrack : StateMachineBehaviour { ...@@ -26,7 +26,7 @@ public class EnemyMeleeTrack : StateMachineBehaviour {
// OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks // OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks
override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) {
if (animator.GetComponent<Enemy>().playerDistance < attackRange) if (animator.GetComponent<Enemy>().PlayerDistance < attackRange)
{ {
animator.SetTrigger("AttackTrigger"); animator.SetTrigger("AttackTrigger");
return; return;
......
...@@ -35,10 +35,11 @@ public class Enemy : MonoBehaviour { ...@@ -35,10 +35,11 @@ public class Enemy : MonoBehaviour {
private EnemyManager enemyManager; private EnemyManager enemyManager;
// for animation // for animation
[HideInInspector]
public float playerDistance;
private Animator animator; private Animator animator;
public bool untouchable = false; public bool Invisible { get; private set; }
public bool Untouchable { get; private set; }
public float PlayerDistance { get; private set; }
private readonly float knockbackCritPoint = 0.25f;
// drop item // drop item
private int[] dropTable; private int[] dropTable;
...@@ -55,14 +56,15 @@ public class Enemy : MonoBehaviour { ...@@ -55,14 +56,15 @@ public class Enemy : MonoBehaviour {
private void Start() private void Start()
{ {
this.currHealth = maxHealth; currHealth = maxHealth;
dropTable = enemyManager.dropTableByID[monsterID]; Invisible = Untouchable = false;
Physics2D.IgnoreCollision(enemyManager.player.gameObject.GetComponent<Collider2D>(), transform.parent.GetComponent<Collider2D>()); dropTable = enemyManager.DropTableByID[monsterID];
Physics2D.IgnoreCollision(enemyManager.Player.gameObject.GetComponent<Collider2D>(), transform.parent.GetComponent<Collider2D>());
} }
private void Update() private void Update()
{ {
playerDistance = Vector2.Distance(enemyManager.player.transform.position, transform.parent.position); PlayerDistance = Vector2.Distance(enemyManager.Player.transform.position, transform.parent.position);
} }
// hit by player or debuff // hit by player or debuff
...@@ -70,13 +72,20 @@ public class Enemy : MonoBehaviour { ...@@ -70,13 +72,20 @@ public class Enemy : MonoBehaviour {
currHealth -= attack.damage; currHealth -= attack.damage;
if (currHealth <= 0) if (currHealth <= 0)
{ {
untouchable = true; Invisible = true;
animator.SetTrigger("DeadTrigger"); animator.SetTrigger("DeadTrigger");
return; return;
} }
animator.SetFloat("knockbackDistance", attack.damage / this.weight * attack.knockBackMultiplier); float knockbackDist = attack.damage * attack.knockBackMultiplier / weight;
if(attack.damage / this.weight >= 0.25f) float knockbackTime = (knockbackDist >= 0.5f) ? 0.5f : knockbackDist;
StartCoroutine(Knockback(knockbackDist, knockbackTime));
if (knockbackDist >= knockbackCritPoint)
{
animator.SetFloat("knockbackTime", knockbackTime);
animator.SetTrigger("DamagedTrigger"); animator.SetTrigger("DamagedTrigger");
}
} }
// Animation Event // Animation Event
...@@ -84,6 +93,7 @@ public class Enemy : MonoBehaviour { ...@@ -84,6 +93,7 @@ public class Enemy : MonoBehaviour {
public void DeadEvent() public void DeadEvent()
{ {
transform.parent.gameObject.SetActive(false); transform.parent.gameObject.SetActive(false);
enemyManager.EnemyDeadCount++; // 다른 enemy로 인해 소환되는 enemy가 추가될 경우 여기를 건드려야 함
// Drop 아이템 결정. 인덱스 별 아이템은 맨 밑에 서술 // Drop 아이템 결정. 인덱스 별 아이템은 맨 밑에 서술
float denominator = dropTable[dropTable.Length - 1]; float denominator = dropTable[dropTable.Length - 1];
...@@ -111,12 +121,10 @@ public class Enemy : MonoBehaviour { ...@@ -111,12 +121,10 @@ public class Enemy : MonoBehaviour {
} }
if (indexOfItem == 7) // Amethyst Potion if (indexOfItem == 7) // Amethyst Potion
{ {
Debug.Log("Amethyst Potion");
// insert! // insert!
} }
if (indexOfItem >= 8 && indexOfItem <= 11) // Item if (indexOfItem >= 8 && indexOfItem <= 11) // Item
{ {
Debug.Log("Item");
inventoryManager.ItemInstantiate((ItemQuality)(indexOfItem - 8), transform.parent.position, EnemyManager.dropObjStrength); inventoryManager.ItemInstantiate((ItemQuality)(indexOfItem - 8), transform.parent.position, EnemyManager.dropObjStrength);
} }
if (indexOfItem >= 12 && indexOfItem <= 15) // Addon if (indexOfItem >= 12 && indexOfItem <= 15) // Addon
...@@ -124,12 +132,30 @@ public class Enemy : MonoBehaviour { ...@@ -124,12 +132,30 @@ public class Enemy : MonoBehaviour {
inventoryManager.AddonInstantiate((ItemQuality)(indexOfItem - 12), transform.parent.position, EnemyManager.dropObjStrength); inventoryManager.AddonInstantiate((ItemQuality)(indexOfItem - 12), transform.parent.position, EnemyManager.dropObjStrength);
} }
this.currHealth = this.maxHealth; currHealth = maxHealth;
this.untouchable = false; Invisible = false;
return; return;
} }
// Coroutine // Coroutine
// Knockback
IEnumerator Knockback(float knockbackDist, float knockbackTime)
{
Untouchable = true;
bool isPlayerLeft = (enemyManager.Player.transform.position.x - transform.parent.position.x <= 0);
float knockbackVelocity = ((isPlayerLeft) ? 1 : -1) * knockbackDist / knockbackTime;
transform.parent.eulerAngles = (isPlayerLeft) ? new Vector2(0.0f, 0.0f) : new Vector2(0.0f, 180.0f);
Vector2 tempVelocity = transform.parent.GetComponent<Rigidbody2D>().velocity;
tempVelocity.x = knockbackVelocity;
transform.parent.GetComponent<Rigidbody2D>().velocity = tempVelocity;
yield return new WaitForSeconds(knockbackTime);
Untouchable = false;
}
// Debuff // Debuff
IEnumerator DebuffCase(EnemyDebuffed sCase) IEnumerator DebuffCase(EnemyDebuffed sCase)
{ {
...@@ -220,4 +246,4 @@ public class Enemy : MonoBehaviour { ...@@ -220,4 +246,4 @@ public class Enemy : MonoBehaviour {
* 13 - Addon(Ordinary) * 13 - Addon(Ordinary)
* 14 - Addon(Superior) * 14 - Addon(Superior)
* 15 - Addon(Masterpiece) * 15 - Addon(Masterpiece)
*/ */
...@@ -9,22 +9,30 @@ public class EnemyManager : Singleton<EnemyManager> ...@@ -9,22 +9,30 @@ public class EnemyManager : Singleton<EnemyManager>
{ {
// data // data
// static // static
private readonly int poolSize = 10;
public static readonly float goldPer = 0.5f; public static readonly float goldPer = 0.5f;
public static readonly int ameNum = 0; public static readonly int ameNum = 0;
public static readonly float dropObjStrength = 1f; public static readonly float dropObjStrength = 1f;
// hold player for animation // hold player for animation
public GameObject player; public GameObject Player { get; private set; }
// data of drop item // data of drop item
public TextAsset dropTableData; [SerializeField]
public Dictionary<int, int[]> dropTableByID = new Dictionary<int, int[]>(); private TextAsset dropTableData;
public Dictionary<int, int[]> DropTableByID { get; private set; }
// enemy prefab and pool
[SerializeField]
private GameObject[] enemyPrefab;
private readonly int poolSize = 10;
public Dictionary<GameObject, GameObject[]> EnemyPool { get; private set; }
// enemy count
[SerializeField]
private uint EnemySpawnCount;
public uint EnemyDeadCount;
// enemy prefab
public GameObject[] enemyPrefab;
public Dictionary<GameObject, GameObject[]> enemyPool = new Dictionary<GameObject, GameObject[]>();
// method // method
// Constructor - protect calling raw constructor // Constructor - protect calling raw constructor
...@@ -33,14 +41,15 @@ public class EnemyManager : Singleton<EnemyManager> ...@@ -33,14 +41,15 @@ public class EnemyManager : Singleton<EnemyManager>
// Awake // Awake
private void Awake() private void Awake()
{ {
player = GameObject.Find("Player"); Player = GameObject.Find("Player");
LoadDropTable(dropTableData); LoadDropTable(dropTableData);
CreateEnemyPool(); CreateEnemyPool();
} }
// Spawn Enemy to Map // Spawn Enemy to Map
public void SpawnEnemy() public void SpawnEnemyToMap()
{ {
EnemySpawnCount = EnemyDeadCount = 0;
Transform enemySpots = MapManager.currentRoom.roomInGame.transform.Find("enemy spot"); Transform enemySpots = MapManager.currentRoom.roomInGame.transform.Find("enemy spot");
foreach(Transform enemySpot in enemySpots) foreach(Transform enemySpot in enemySpots)
{ {
...@@ -53,10 +62,16 @@ public class EnemyManager : Singleton<EnemyManager> ...@@ -53,10 +62,16 @@ public class EnemyManager : Singleton<EnemyManager>
} }
} }
public bool IsClear()
{
return (EnemyDeadCount == EnemySpawnCount);
}
// Object Pool // Object Pool
private void CreateEnemyPool() private void CreateEnemyPool()
{ {
foreach(GameObject eachEnemy in enemyPrefab) EnemyPool = new Dictionary<GameObject, GameObject[]>();
foreach (GameObject eachEnemy in enemyPrefab)
{ {
GameObject[] pool = new GameObject[poolSize]; GameObject[] pool = new GameObject[poolSize];
for(int i = 0; i < pool.Length; i++) for(int i = 0; i < pool.Length; i++)
...@@ -64,14 +79,14 @@ public class EnemyManager : Singleton<EnemyManager> ...@@ -64,14 +79,14 @@ public class EnemyManager : Singleton<EnemyManager>
pool[i] = Instantiate(eachEnemy); pool[i] = Instantiate(eachEnemy);
pool[i].SetActive(false); pool[i].SetActive(false);
} }
enemyPool.Add(eachEnemy, pool); EnemyPool.Add(eachEnemy, pool);
} }
} }
private GameObject PickFromPool(GameObject enemy) private GameObject PickFromPool(GameObject enemy)
{ {
Debug.Log(enemy.name); EnemySpawnCount += 1;
GameObject[] pool = enemyPool[enemy]; GameObject[] pool = EnemyPool[enemy];
foreach(GameObject obj in pool) foreach(GameObject obj in pool)
{ {
if (!obj.activeSelf) if (!obj.activeSelf)
...@@ -88,7 +103,7 @@ public class EnemyManager : Singleton<EnemyManager> ...@@ -88,7 +103,7 @@ public class EnemyManager : Singleton<EnemyManager>
pool[i] = Instantiate(enemy); pool[i] = Instantiate(enemy);
pool[i].SetActive(false); pool[i].SetActive(false);
} }
enemyPool[enemy] = pool; EnemyPool[enemy] = pool;
pool[beforeExtend].SetActive(true); pool[beforeExtend].SetActive(true);
return pool[beforeExtend]; return pool[beforeExtend];
...@@ -97,6 +112,7 @@ public class EnemyManager : Singleton<EnemyManager> ...@@ -97,6 +112,7 @@ public class EnemyManager : Singleton<EnemyManager>
// Load Dictionary // Load Dictionary
private void LoadDropTable(TextAsset dataFile) private void LoadDropTable(TextAsset dataFile)
{ {
DropTableByID = new Dictionary<int, int[]>();
string[] linesFromText = dataFile.text.Split('\n'); string[] linesFromText = dataFile.text.Split('\n');
string[] cellValue = null; string[] cellValue = null;
...@@ -126,7 +142,7 @@ public class EnemyManager : Singleton<EnemyManager> ...@@ -126,7 +142,7 @@ public class EnemyManager : Singleton<EnemyManager>
dropTable[j] = cumulated; dropTable[j] = cumulated;
} }
dropTableByID.Add(enemyID, dropTable); DropTableByID.Add(enemyID, dropTable);
} }
} }
} }
...@@ -28,7 +28,7 @@ public class GameManager : MonoBehaviour { ...@@ -28,7 +28,7 @@ public class GameManager : MonoBehaviour {
gameState = GameState.Ingame; gameState = GameState.Ingame;
GameObject.Find("TetriminoSpawner").GetComponent<TetriminoSpawner>().MakeInitialTetrimino(); GameObject.Find("TetriminoSpawner").GetComponent<TetriminoSpawner>().MakeInitialTetrimino();
Vector2 coord = MapManager.currentRoom.transform.position; Vector2 coord = MapManager.currentRoom.transform.position;
GameObject.Find("Player").transform.position = MapManager.currentRoom.roomInGame.transform.Find("Portal").position + warpPosition; GameObject.Find("Player").transform.position = MapManager.currentRoom.roomInGame.transform.Find("portalspot").position + warpPosition;
GameObject.Find("Main Camera").transform.position = GameObject.Find("Player").transform.position; GameObject.Find("Main Camera").transform.position = GameObject.Find("Player").transform.position;
} }
......
...@@ -139,6 +139,10 @@ public class MapManager : MonoBehaviour { ...@@ -139,6 +139,10 @@ public class MapManager : MonoBehaviour {
/// </summary> /// </summary>
public GameObject clearedFog; public GameObject clearedFog;
/// <summary> /// <summary>
/// Portal of the room.
/// </summary>
public GameObject portal;
/// <summary>
/// Press. /// Press.
/// </summary> /// </summary>
public Press press; public Press press;
...@@ -869,7 +873,6 @@ public class MapManager : MonoBehaviour { ...@@ -869,7 +873,6 @@ public class MapManager : MonoBehaviour {
currentRoom = newRoom; currentRoom = newRoom;
StartCoroutine(RoomFadeIn(newRoom)); StartCoroutine(RoomFadeIn(newRoom));
playerIcon.transform.position = currentRoom.mapCoord * tetrisMapSize + new Vector3(0, 0, -2); playerIcon.transform.position = currentRoom.mapCoord * tetrisMapSize + new Vector3(0, 0, -2);
//newRoom.GetComponent<SpriteRenderer>().sprite = roomSurfaceSpritesDistributed[newRoom.stage][(int)RoomSpriteType.Current];
} }
/// <summary> /// <summary>
/// Make room fade in. /// Make room fade in.
...@@ -1188,6 +1191,11 @@ public class MapManager : MonoBehaviour { ...@@ -1188,6 +1191,11 @@ public class MapManager : MonoBehaviour {
{ {
PortalControl(); PortalControl();
} }
if(!currentRoom.isRoomCleared && (GameObject.Find("EnemyManager").GetComponent<EnemyManager>().IsClear() ||
(currentRoom.specialRoomType != RoomType.Normal && currentRoom.specialRoomType != RoomType.Boss)))
{
currentRoom.ClearRoom();
}
} }
} }
} }
...@@ -146,13 +146,10 @@ public class Room : MonoBehaviour ...@@ -146,13 +146,10 @@ public class Room : MonoBehaviour
/// </summary> /// </summary>
public void CreatePortal() public void CreatePortal()
{ {
portal = roomInGame.transform.Find("Portal").gameObject; MapManager mapManager = GameObject.Find("MapManager").GetComponent<MapManager>();
portal = roomInGame.transform.Find("portalspot").gameObject;
if (specialRoomType != RoomType.Normal) if (specialRoomType != RoomType.Normal)
{
portal.SetActive(true);
isPortal = true; isPortal = true;
return;
}
else else
{ {
int portalDistance = 0; int portalDistance = 0;
...@@ -195,32 +192,29 @@ public class Room : MonoBehaviour ...@@ -195,32 +192,29 @@ public class Room : MonoBehaviour
switch (portalDistance) switch (portalDistance)
{ {
case 1: case 1:
return; break;
case 2: case 2:
if (Random.Range(0, 10) % 10 == 0) if (Random.Range(0, 10) % 10 == 0)
{ {
portal.SetActive(true);
isPortal = true; isPortal = true;
} }
return; break;
case 3: case 3:
if (Random.Range(0, 4) % 10 == 0) if (Random.Range(0, 4) % 10 == 0)
{ {
portal.SetActive(true);
isPortal = true; isPortal = true;
} }
return; break;
case 4: case 4:
if (Random.Range(0, 2) % 10 == 0) if (Random.Range(0, 2) % 10 == 0)
{ {
portal.SetActive(true);
isPortal = true; isPortal = true;
} }
return; break;
} }
portal.SetActive(true);
isPortal = true;
} }
if(isPortal)
portal = Instantiate(mapManager.portal, portal.transform.position, Quaternion.identity, roomInGame.transform);
} }
/// <summary> /// <summary>
/// Open selected door of this room. /// Open selected door of this room.
......
...@@ -7,6 +7,6 @@ public class NormalRoomInGame : RoomInGame { ...@@ -7,6 +7,6 @@ public class NormalRoomInGame : RoomInGame {
public override void RoomEnter() public override void RoomEnter()
{ {
base.RoomEnter(); base.RoomEnter();
GameObject.Find("EnemyManager").GetComponent<EnemyManager>().SpawnEnemy(); GameObject.Find("EnemyManager").GetComponent<EnemyManager>().SpawnEnemyToMap();
} }
} }
...@@ -56,7 +56,7 @@ public class Test : MonoBehaviour { ...@@ -56,7 +56,7 @@ public class Test : MonoBehaviour {
} }
public void SummonEnemy() public void SummonEnemy()
{ {
enemyManager.SpawnEnemy(); enemyManager.SpawnEnemyToMap();
} }
......
...@@ -103,8 +103,6 @@ public class TetriminoSpawner : MonoBehaviour { ...@@ -103,8 +103,6 @@ public class TetriminoSpawner : MonoBehaviour {
mapManager.CreateRoom(MapManager.currentTetrimino); mapManager.CreateRoom(MapManager.currentTetrimino);
MapManager.currentRoom.fog.GetComponent<SpriteRenderer>().color = new Color(1, 1, 1, 0); MapManager.currentRoom.fog.GetComponent<SpriteRenderer>().color = new Color(1, 1, 1, 0);
mapManager.playerIcon.transform.position = MapManager.currentRoom.mapCoord * MapManager.tetrisMapSize + new Vector3(0, 0, -2); mapManager.playerIcon.transform.position = MapManager.currentRoom.mapCoord * MapManager.tetrisMapSize + new Vector3(0, 0, -2);
//MapManager.currentRoom.GetComponent<SpriteRenderer>().sprite = mapManager.roomSurfaceSpritesDistributed[MapManager.currentStage][(int)RoomSpriteType.Current];
MapManager.currentRoom.ClearRoom();
MapManager.tempRoom = MapManager.currentRoom; MapManager.tempRoom = MapManager.currentRoom;
mapManager.playerIcon = Instantiate(mapManager.playerIcon, MapManager.currentRoom.mapCoord * MapManager.tetrisMapSize + new Vector3(0, 0, -2) mapManager.playerIcon = Instantiate(mapManager.playerIcon, MapManager.currentRoom.mapCoord * MapManager.tetrisMapSize + new Vector3(0, 0, -2)
, Quaternion.identity, mapManager.grid); , Quaternion.identity, mapManager.grid);
......
...@@ -30,7 +30,7 @@ TagManager: ...@@ -30,7 +30,7 @@ TagManager:
- PlayerAttack - PlayerAttack
- EnemyCollider - EnemyCollider
- EnemyTrigger - EnemyTrigger
- - Portal
- -
- -
- -
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment