Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
tetra-tower
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Oenos
tetra-tower
Commits
5c66ced5
Commit
5c66ced5
authored
Feb 12, 2019
by
18손재민
Browse files
Options
Browse Files
Download
Plain Diff
이제 모든 적이 죽으면 방이 클리어됨. 포탈 생성 수정중
parents
9f27e305
6f7548ef
Changes
18
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
439 additions
and
105 deletions
+439
-105
melee.controller
Assets/Animation/Enemy/melee.controller
+3
-3
Room Start 1-1.prefab
Assets/Prefabs/Rooms/SpecialRoom/Room Start 1-1.prefab
+117
-0
PlayerIcon.prefab
Assets/Prefabs/TetrisMap/PlayerIcon.prefab
+1
-1
Portal.prefab
Assets/Prefabs/TetrisMap/Portal.prefab
+1
-1
testEnemy.unity
Assets/Scenes/testEnemy.unity
+218
-42
AttackProperty.cs
Assets/Scripts/Characters/AttackProperty.cs
+1
-2
EnemyDamaged.cs
...s/Scripts/Characters/Enemy/Animator State/EnemyDamaged.cs
+1
-1
EnemyMeleeIdle.cs
...Scripts/Characters/Enemy/Animator State/EnemyMeleeIdle.cs
+1
-1
EnemyMeleeTrack.cs
...cripts/Characters/Enemy/Animator State/EnemyMeleeTrack.cs
+2
-2
Enemy.cs
Assets/Scripts/Characters/Enemy/Enemy.cs
+41
-15
EnemyManager.cs
Assets/Scripts/EnemyManager.cs
+32
-16
GameManager.cs
Assets/Scripts/GameManager.cs
+1
-1
MapManager.cs
Assets/Scripts/TetrisMap/MapManager.cs
+9
-1
Room.cs
Assets/Scripts/TetrisMap/Room.cs
+8
-14
NormalRoomInGame.cs
Assets/Scripts/TetrisMap/Rooms/NormalRoomInGame.cs
+1
-1
Test.cs
Assets/Scripts/TetrisMap/Test.cs
+1
-1
TetriminoSpawner.cs
Assets/Scripts/TetrisMap/TetriminoSpawner.cs
+0
-2
TagManager.asset
ProjectSettings/TagManager.asset
+1
-1
No files found.
Assets/Animation/Enemy/melee.controller
View file @
5c66ced5
...
@@ -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
:
knockback
Distanc
e
-
m_Name
:
knockback
Tim
e
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
:
knockback
Distanc
e
m_TimeParameter
:
knockback
Tim
e
---
!u!1102
&1102828359910447394
---
!u!1102
&1102828359910447394
AnimatorState
:
AnimatorState
:
serializedVersion
:
5
serializedVersion
:
5
...
...
Assets/Prefabs/Rooms/SpecialRoom/Room Start 1-1.prefab
View file @
5c66ced5
...
@@ -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
}
...
...
Assets/Prefabs/TetrisMap/PlayerIcon.prefab
View file @
5c66ced5
...
@@ -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
}
...
...
Assets/Prefabs/TetrisMap/Portal.prefab
View file @
5c66ced5
...
@@ -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
:
1
3
m_Layer
:
1
8
m_Name
:
Portal
m_Name
:
Portal
m_TagString
:
Untagged
m_TagString
:
Untagged
m_Icon
:
{
fileID
:
0
}
m_Icon
:
{
fileID
:
0
}
...
...
Assets/Scenes/testEnemy.unity
View file @
5c66ced5
...
@@ -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
:
1
4
value
:
1
3
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!1
001
&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
...
...
Assets/Scripts/Characters/AttackProperty.cs
View file @
5c66ced5
...
@@ -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
>().
untoucha
ble
)
if
(
collision
.
CompareTag
(
"Enemy"
)
&&
!
collision
.
transform
.
GetChild
(
0
).
GetComponent
<
Enemy
>().
Invisi
ble
)
{
{
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
);
...
...
Assets/Scripts/Characters/Enemy/Animator State/EnemyDamaged.cs
View file @
5c66ced5
...
@@ -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
.
p
layer
.
transform
;
Transform
playerTransform
=
EnemyManager
.
Instance
.
P
layer
.
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
;
...
...
Assets/Scripts/Characters/Enemy/Animator State/EnemyMeleeIdle.cs
View file @
5c66ced5
...
@@ -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
>().
p
layerDistance
<
noticeRange
)
if
(
animator
.
GetComponent
<
Enemy
>().
P
layerDistance
<
noticeRange
)
{
{
animator
.
SetTrigger
(
"TrackTrigger"
);
animator
.
SetTrigger
(
"TrackTrigger"
);
return
;
return
;
...
...
Assets/Scripts/Characters/Enemy/Animator State/EnemyMeleeTrack.cs
View file @
5c66ced5
...
@@ -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
.
p
layer
;
player
=
EnemyManager
.
Instance
.
P
layer
;
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
>().
p
layerDistance
<
attackRange
)
if
(
animator
.
GetComponent
<
Enemy
>().
P
layerDistance
<
attackRange
)
{
{
animator
.
SetTrigger
(
"AttackTrigger"
);
animator
.
SetTrigger
(
"AttackTrigger"
);
return
;
return
;
...
...
Assets/Scripts/Characters/Enemy/Enemy.cs
View file @
5c66ced5
...
@@ -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
.
p
layer
.
transform
.
position
,
transform
.
parent
.
position
);
PlayerDistance
=
Vector2
.
Distance
(
enemyManager
.
P
layer
.
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
)
{
{
untoucha
ble
=
true
;
Invisi
ble
=
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
.
untoucha
ble
=
false
;
Invisi
ble
=
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)
*/
*/
Assets/Scripts/EnemyManager.cs
View file @
5c66ced5
...
@@ -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
()
{
{
p
layer
=
GameObject
.
Find
(
"Player"
);
P
layer
=
GameObject
.
Find
(
"Player"
);
LoadDropTable
(
dropTableData
);
LoadDropTable
(
dropTableData
);
CreateEnemyPool
();
CreateEnemyPool
();
}
}
// Spawn Enemy to Map
// Spawn Enemy to Map
public
void
SpawnEnemy
()
public
void
SpawnEnemy
ToMap
()
{
{
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
);
}
}
e
nemyPool
.
Add
(
eachEnemy
,
pool
);
E
nemyPool
.
Add
(
eachEnemy
,
pool
);
}
}
}
}
private
GameObject
PickFromPool
(
GameObject
enemy
)
private
GameObject
PickFromPool
(
GameObject
enemy
)
{
{
Debug
.
Log
(
enemy
.
name
)
;
EnemySpawnCount
+=
1
;
GameObject
[]
pool
=
e
nemyPool
[
enemy
];
GameObject
[]
pool
=
E
nemyPool
[
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
);
}
}
e
nemyPool
[
enemy
]
=
pool
;
E
nemyPool
[
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
;
}
}
d
ropTableByID
.
Add
(
enemyID
,
dropTable
);
D
ropTableByID
.
Add
(
enemyID
,
dropTable
);
}
}
}
}
}
}
Assets/Scripts/GameManager.cs
View file @
5c66ced5
...
@@ -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
;
}
}
...
...
Assets/Scripts/TetrisMap/MapManager.cs
View file @
5c66ced5
...
@@ -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
();
}
}
}
}
}
}
}
Assets/Scripts/TetrisMap/Room.cs
View file @
5c66ced5
...
@@ -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.
...
...
Assets/Scripts/TetrisMap/Rooms/NormalRoomInGame.cs
View file @
5c66ced5
...
@@ -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
>().
SpawnEnemy
ToMap
();
}
}
}
}
Assets/Scripts/TetrisMap/Test.cs
View file @
5c66ced5
...
@@ -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
.
SpawnEnemy
ToMap
();
}
}
...
...
Assets/Scripts/TetrisMap/TetriminoSpawner.cs
View file @
5c66ced5
...
@@ -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
);
...
...
ProjectSettings/TagManager.asset
View file @
5c66ced5
...
@@ -30,7 +30,7 @@ TagManager:
...
@@ -30,7 +30,7 @@ TagManager:
-
PlayerAttack
-
PlayerAttack
-
EnemyCollider
-
EnemyCollider
-
EnemyTrigger
-
EnemyTrigger
-
-
Portal
-
-
-
-
-
-
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment