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
7b447510
Commit
7b447510
authored
Feb 25, 2019
by
15김민규
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
거미 구현. 소환한 후 발견하면 지속적으로 따라옴. 어택 관련 이슈나 피격, 디버프를 만질 예정.
parent
aa6e6da0
Changes
33
Show whitespace changes
Inline
Side-by-side
Showing
33 changed files
with
1962 additions
and
1616 deletions
+1962
-1616
Air.controller
Assets/Animation/Enemy/Air.controller
+389
-0
Air.controller.meta
Assets/Animation/Enemy/Air.controller.meta
+8
-0
GroundMelee.controller
Assets/Animation/Enemy/GroundMelee.controller
+43
-1
GroundMelee.controller.meta
Assets/Animation/Enemy/GroundMelee.controller.meta
+0
-0
Spider.meta
Assets/Animation/Enemy/Spider.meta
+8
-0
Spider Idle.anim
Assets/Animation/Enemy/Spider/Spider Idle.anim
+68
-0
Spider Idle.anim.meta
Assets/Animation/Enemy/Spider/Spider Idle.anim.meta
+8
-0
dropData_exam.csv
Assets/Data/dropData_exam.csv
+1
-2
EnemyPhysics.cs
Assets/EnemyPhysics.cs
+0
-7
Goblin.prefab
Assets/Prefabs/Characters/Enemy/Goblin.prefab
+4
-4
Spider.prefab
Assets/Prefabs/Characters/Enemy/Spider.prefab
+122
-47
Spider.prefab.meta
Assets/Prefabs/Characters/Enemy/Spider.prefab.meta
+0
-0
EnemyManager.prefab
Assets/Prefabs/EnemyManager.prefab
+3
-18
testEnemy.unity
Assets/Scenes/testEnemy.unity
+899
-1247
EnemyAirIdle.cs
...s/Scripts/Characters/Enemy/Animator State/EnemyAirIdle.cs
+46
-0
EnemyAirIdle.cs.meta
...ipts/Characters/Enemy/Animator State/EnemyAirIdle.cs.meta
+1
-1
EnemyAirTrack.cs
.../Scripts/Characters/Enemy/Animator State/EnemyAirTrack.cs
+50
-0
EnemyAirTrack.cs.meta
...pts/Characters/Enemy/Animator State/EnemyAirTrack.cs.meta
+11
-0
EnemyMeleeIdle.cs
...Scripts/Characters/Enemy/Animator State/EnemyMeleeIdle.cs
+7
-7
EnemyMeleeTrack.cs
...cripts/Characters/Enemy/Animator State/EnemyMeleeTrack.cs
+8
-8
Enemy.cs
Assets/Scripts/Characters/Enemy/Enemy.cs
+41
-148
EnemyAir.cs
Assets/Scripts/Characters/Enemy/EnemyAir.cs
+47
-0
EnemyAir.cs.meta
Assets/Scripts/Characters/Enemy/EnemyAir.cs.meta
+11
-0
EnemyGround.cs
Assets/Scripts/Characters/Enemy/EnemyGround.cs
+143
-0
EnemyGround.cs.meta
Assets/Scripts/Characters/Enemy/EnemyGround.cs.meta
+11
-0
EnemyManager.cs
Assets/Scripts/EnemyManager.cs
+18
-0
Test.cs
Assets/Scripts/TetrisMap/Test.cs
+1
-1
Spider.meta
Assets/Sprites/Enemy/Spider.meta
+8
-0
evil_spider.png
Assets/Sprites/Enemy/Spider/evil_spider.png
+0
-0
evil_spider.png.meta
Assets/Sprites/Enemy/Spider/evil_spider.png.meta
+6
-17
evil_scorpion1.png
Assets/Sprites/evil_scorpion1.png
+0
-0
evil_scorpion2.png
Assets/Sprites/evil_scorpion2.png
+0
-0
evil_scorpion2.png.meta
Assets/Sprites/evil_scorpion2.png.meta
+0
-108
No files found.
Assets/Animation/Enemy/Air.controller
0 → 100644
View file @
7b447510
%YAML
1.1
%TAG
!u!
tag:unity3d.com,2011:
---
!u!91
&9100000
AnimatorController
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
0
}
m_Name
:
Air
serializedVersion
:
5
m_AnimatorParameters
:
-
m_Name
:
TrackTrigger
m_Type
:
9
m_DefaultFloat
:
0
m_DefaultInt
:
0
m_DefaultBool
:
0
m_Controller
:
{
fileID
:
0
}
-
m_Name
:
DamagedTrigger
m_Type
:
9
m_DefaultFloat
:
0
m_DefaultInt
:
0
m_DefaultBool
:
0
m_Controller
:
{
fileID
:
0
}
-
m_Name
:
DeadTrigger
m_Type
:
9
m_DefaultFloat
:
0
m_DefaultInt
:
0
m_DefaultBool
:
0
m_Controller
:
{
fileID
:
0
}
-
m_Name
:
StunnedTrigger
m_Type
:
9
m_DefaultFloat
:
0
m_DefaultInt
:
0
m_DefaultBool
:
0
m_Controller
:
{
fileID
:
0
}
-
m_Name
:
DisableStunTrigger
m_Type
:
9
m_DefaultFloat
:
0
m_DefaultInt
:
0
m_DefaultBool
:
0
m_Controller
:
{
fileID
:
0
}
m_AnimatorLayers
:
-
serializedVersion
:
5
m_Name
:
Base Layer
m_StateMachine
:
{
fileID
:
1107295075789473082
}
m_Mask
:
{
fileID
:
0
}
m_Motions
:
[]
m_Behaviours
:
[]
m_BlendingMode
:
0
m_SyncedLayerIndex
:
-1
m_DefaultWeight
:
0
m_IKPass
:
0
m_SyncedLayerAffectsTiming
:
0
m_Controller
:
{
fileID
:
9100000
}
---
!u!114
&114426859214803992
MonoBehaviour
:
m_ObjectHideFlags
:
1
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
0
}
m_Enabled
:
1
m_EditorHideFlags
:
0
m_Script
:
{
fileID
:
11500000
,
guid
:
b24234f0901ca8344922d2c140a48dd2
,
type
:
3
}
m_Name
:
m_EditorClassIdentifier
:
---
!u!114
&114561798457399118
MonoBehaviour
:
m_ObjectHideFlags
:
1
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
0
}
m_Enabled
:
1
m_EditorHideFlags
:
0
m_Script
:
{
fileID
:
11500000
,
guid
:
11413b136ebb3b54d9ad632cc4ef4d60
,
type
:
3
}
m_Name
:
m_EditorClassIdentifier
:
---
!u!1101
&1101370428862079160
AnimatorStateTransition
:
m_ObjectHideFlags
:
1
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
0
}
m_Name
:
m_Conditions
:
[]
m_DstStateMachine
:
{
fileID
:
0
}
m_DstState
:
{
fileID
:
1102308230915380642
}
m_Solo
:
0
m_Mute
:
0
m_IsExit
:
0
serializedVersion
:
3
m_TransitionDuration
:
0.25
m_TransitionOffset
:
0
m_ExitTime
:
0.75
m_HasExitTime
:
0
m_HasFixedDuration
:
1
m_InterruptionSource
:
0
m_OrderedInterruption
:
1
m_CanTransitionToSelf
:
1
---
!u!1101
&1101489775298296946
AnimatorStateTransition
:
m_ObjectHideFlags
:
1
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
0
}
m_Name
:
m_Conditions
:
[]
m_DstStateMachine
:
{
fileID
:
0
}
m_DstState
:
{
fileID
:
1102026995191012766
}
m_Solo
:
0
m_Mute
:
0
m_IsExit
:
0
serializedVersion
:
3
m_TransitionDuration
:
0.25
m_TransitionOffset
:
0
m_ExitTime
:
0.75
m_HasExitTime
:
1
m_HasFixedDuration
:
1
m_InterruptionSource
:
0
m_OrderedInterruption
:
1
m_CanTransitionToSelf
:
1
---
!u!1101
&1101525919123462234
AnimatorStateTransition
:
m_ObjectHideFlags
:
1
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
0
}
m_Name
:
m_Conditions
:
[]
m_DstStateMachine
:
{
fileID
:
0
}
m_DstState
:
{
fileID
:
1102281897657207296
}
m_Solo
:
0
m_Mute
:
0
m_IsExit
:
0
serializedVersion
:
3
m_TransitionDuration
:
0.25
m_TransitionOffset
:
0
m_ExitTime
:
0.75
m_HasExitTime
:
1
m_HasFixedDuration
:
1
m_InterruptionSource
:
0
m_OrderedInterruption
:
1
m_CanTransitionToSelf
:
1
---
!u!1101
&1101602240264659518
AnimatorStateTransition
:
m_ObjectHideFlags
:
1
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
0
}
m_Name
:
m_Conditions
:
[]
m_DstStateMachine
:
{
fileID
:
0
}
m_DstState
:
{
fileID
:
1102673918059962672
}
m_Solo
:
0
m_Mute
:
0
m_IsExit
:
0
serializedVersion
:
3
m_TransitionDuration
:
0.25
m_TransitionOffset
:
0
m_ExitTime
:
0.75
m_HasExitTime
:
0
m_HasFixedDuration
:
1
m_InterruptionSource
:
0
m_OrderedInterruption
:
1
m_CanTransitionToSelf
:
1
---
!u!1101
&1101695671416216184
AnimatorStateTransition
:
m_ObjectHideFlags
:
1
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
0
}
m_Name
:
m_Conditions
:
[]
m_DstStateMachine
:
{
fileID
:
0
}
m_DstState
:
{
fileID
:
1102281897657207296
}
m_Solo
:
0
m_Mute
:
0
m_IsExit
:
0
serializedVersion
:
3
m_TransitionDuration
:
0.25
m_TransitionOffset
:
0
m_ExitTime
:
0
m_HasExitTime
:
1
m_HasFixedDuration
:
1
m_InterruptionSource
:
0
m_OrderedInterruption
:
1
m_CanTransitionToSelf
:
1
---
!u!1101
&1101862457315021670
AnimatorStateTransition
:
m_ObjectHideFlags
:
1
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
0
}
m_Name
:
m_Conditions
:
[]
m_DstStateMachine
:
{
fileID
:
0
}
m_DstState
:
{
fileID
:
1102281897657207296
}
m_Solo
:
0
m_Mute
:
0
m_IsExit
:
0
serializedVersion
:
3
m_TransitionDuration
:
0.25
m_TransitionOffset
:
0
m_ExitTime
:
0
m_HasExitTime
:
1
m_HasFixedDuration
:
1
m_InterruptionSource
:
0
m_OrderedInterruption
:
1
m_CanTransitionToSelf
:
1
---
!u!1101
&1101962346197267854
AnimatorStateTransition
:
m_ObjectHideFlags
:
1
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
0
}
m_Name
:
m_Conditions
:
[]
m_DstStateMachine
:
{
fileID
:
0
}
m_DstState
:
{
fileID
:
1102983908728061620
}
m_Solo
:
0
m_Mute
:
0
m_IsExit
:
0
serializedVersion
:
3
m_TransitionDuration
:
0.25
m_TransitionOffset
:
0
m_ExitTime
:
0.75
m_HasExitTime
:
0
m_HasFixedDuration
:
1
m_InterruptionSource
:
0
m_OrderedInterruption
:
1
m_CanTransitionToSelf
:
1
---
!u!1102
&1102026995191012766
AnimatorState
:
serializedVersion
:
5
m_ObjectHideFlags
:
1
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
0
}
m_Name
:
Idle
m_Speed
:
1
m_CycleOffset
:
0
m_Transitions
:
-
{
fileID
:
1101695671416216184
}
m_StateMachineBehaviours
:
-
{
fileID
:
114561798457399118
}
m_Position
:
{
x
:
50
,
y
:
50
,
z
:
0
}
m_IKOnFeet
:
0
m_WriteDefaultValues
:
1
m_Mirror
:
0
m_SpeedParameterActive
:
0
m_MirrorParameterActive
:
0
m_CycleOffsetParameterActive
:
0
m_TimeParameterActive
:
0
m_Motion
:
{
fileID
:
7400000
,
guid
:
e38ac228fc296204b80018c3350e6b3d
,
type
:
2
}
m_Tag
:
m_SpeedParameter
:
m_MirrorParameter
:
m_CycleOffsetParameter
:
m_TimeParameter
:
---
!u!1102
&1102281897657207296
AnimatorState
:
serializedVersion
:
5
m_ObjectHideFlags
:
1
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
0
}
m_Name
:
Track
m_Speed
:
1
m_CycleOffset
:
0
m_Transitions
:
-
{
fileID
:
1101489775298296946
}
m_StateMachineBehaviours
:
-
{
fileID
:
114426859214803992
}
m_Position
:
{
x
:
50
,
y
:
50
,
z
:
0
}
m_IKOnFeet
:
0
m_WriteDefaultValues
:
1
m_Mirror
:
0
m_SpeedParameterActive
:
0
m_MirrorParameterActive
:
0
m_CycleOffsetParameterActive
:
0
m_TimeParameterActive
:
0
m_Motion
:
{
fileID
:
7400000
,
guid
:
e38ac228fc296204b80018c3350e6b3d
,
type
:
2
}
m_Tag
:
m_SpeedParameter
:
m_MirrorParameter
:
m_CycleOffsetParameter
:
m_TimeParameter
:
---
!u!1102
&1102308230915380642
AnimatorState
:
serializedVersion
:
5
m_ObjectHideFlags
:
1
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
0
}
m_Name
:
Dead
m_Speed
:
1
m_CycleOffset
:
0
m_Transitions
:
[]
m_StateMachineBehaviours
:
[]
m_Position
:
{
x
:
50
,
y
:
50
,
z
:
0
}
m_IKOnFeet
:
0
m_WriteDefaultValues
:
1
m_Mirror
:
0
m_SpeedParameterActive
:
0
m_MirrorParameterActive
:
0
m_CycleOffsetParameterActive
:
0
m_TimeParameterActive
:
0
m_Motion
:
{
fileID
:
7400000
,
guid
:
e38ac228fc296204b80018c3350e6b3d
,
type
:
2
}
m_Tag
:
m_SpeedParameter
:
m_MirrorParameter
:
m_CycleOffsetParameter
:
m_TimeParameter
:
---
!u!1102
&1102673918059962672
AnimatorState
:
serializedVersion
:
5
m_ObjectHideFlags
:
1
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
0
}
m_Name
:
Damaged
m_Speed
:
1
m_CycleOffset
:
0
m_Transitions
:
-
{
fileID
:
1101862457315021670
}
m_StateMachineBehaviours
:
[]
m_Position
:
{
x
:
50
,
y
:
50
,
z
:
0
}
m_IKOnFeet
:
0
m_WriteDefaultValues
:
1
m_Mirror
:
0
m_SpeedParameterActive
:
0
m_MirrorParameterActive
:
0
m_CycleOffsetParameterActive
:
0
m_TimeParameterActive
:
0
m_Motion
:
{
fileID
:
7400000
,
guid
:
e38ac228fc296204b80018c3350e6b3d
,
type
:
2
}
m_Tag
:
m_SpeedParameter
:
m_MirrorParameter
:
m_CycleOffsetParameter
:
m_TimeParameter
:
---
!u!1102
&1102983908728061620
AnimatorState
:
serializedVersion
:
5
m_ObjectHideFlags
:
1
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
0
}
m_Name
:
Stunned
m_Speed
:
1
m_CycleOffset
:
0
m_Transitions
:
-
{
fileID
:
1101525919123462234
}
m_StateMachineBehaviours
:
[]
m_Position
:
{
x
:
50
,
y
:
50
,
z
:
0
}
m_IKOnFeet
:
0
m_WriteDefaultValues
:
1
m_Mirror
:
0
m_SpeedParameterActive
:
0
m_MirrorParameterActive
:
0
m_CycleOffsetParameterActive
:
0
m_TimeParameterActive
:
0
m_Motion
:
{
fileID
:
7400000
,
guid
:
e38ac228fc296204b80018c3350e6b3d
,
type
:
2
}
m_Tag
:
m_SpeedParameter
:
m_MirrorParameter
:
m_CycleOffsetParameter
:
m_TimeParameter
:
---
!u!1107
&1107295075789473082
AnimatorStateMachine
:
serializedVersion
:
5
m_ObjectHideFlags
:
1
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
0
}
m_Name
:
Base Layer
m_ChildStates
:
-
serializedVersion
:
1
m_State
:
{
fileID
:
1102026995191012766
}
m_Position
:
{
x
:
216
,
y
:
168
,
z
:
0
}
-
serializedVersion
:
1
m_State
:
{
fileID
:
1102281897657207296
}
m_Position
:
{
x
:
96
,
y
:
264
,
z
:
0
}
-
serializedVersion
:
1
m_State
:
{
fileID
:
1102673918059962672
}
m_Position
:
{
x
:
216
,
y
:
360
,
z
:
0
}
-
serializedVersion
:
1
m_State
:
{
fileID
:
1102308230915380642
}
m_Position
:
{
x
:
384
,
y
:
468
,
z
:
0
}
-
serializedVersion
:
1
m_State
:
{
fileID
:
1102983908728061620
}
m_Position
:
{
x
:
-12
,
y
:
360
,
z
:
0
}
m_ChildStateMachines
:
[]
m_AnyStateTransitions
:
-
{
fileID
:
1101602240264659518
}
-
{
fileID
:
1101370428862079160
}
-
{
fileID
:
1101962346197267854
}
m_EntryTransitions
:
[]
m_StateMachineTransitions
:
{}
m_StateMachineBehaviours
:
[]
m_AnyStatePosition
:
{
x
:
120
,
y
:
468
,
z
:
0
}
m_EntryPosition
:
{
x
:
-48
,
y
:
168
,
z
:
0
}
m_ExitPosition
:
{
x
:
800
,
y
:
120
,
z
:
0
}
m_ParentStateMachinePosition
:
{
x
:
800
,
y
:
20
,
z
:
0
}
m_DefaultState
:
{
fileID
:
1102026995191012766
}
Assets/Animation/Enemy/Air.controller.meta
0 → 100644
View file @
7b447510
fileFormatVersion: 2
guid: c8563e7de963bcc4a90cafd485471e9b
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:
Assets/Animation/Enemy/
m
elee.controller
→
Assets/Animation/Enemy/
GroundM
elee.controller
View file @
7b447510
...
...
@@ -5,7 +5,7 @@ AnimatorController:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
0
}
m_Name
:
m
elee
m_Name
:
GroundM
elee
serializedVersion
:
5
m_AnimatorParameters
:
-
m_Name
:
TrackTrigger
...
...
@@ -146,6 +146,27 @@ AnimatorStateTransition:
m_InterruptionSource
:
0
m_OrderedInterruption
:
1
m_CanTransitionToSelf
:
1
---
!u!1101
&1101325659652078070
AnimatorStateTransition
:
m_ObjectHideFlags
:
1
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
0
}
m_Name
:
m_Conditions
:
[]
m_DstStateMachine
:
{
fileID
:
0
}
m_DstState
:
{
fileID
:
1102455672269219010
}
m_Solo
:
0
m_Mute
:
0
m_IsExit
:
0
serializedVersion
:
3
m_TransitionDuration
:
0.25
m_TransitionOffset
:
0
m_ExitTime
:
0.516129
m_HasExitTime
:
1
m_HasFixedDuration
:
1
m_InterruptionSource
:
0
m_OrderedInterruption
:
1
m_CanTransitionToSelf
:
1
---
!u!1101
&1101374430603555350
AnimatorStateTransition
:
m_ObjectHideFlags
:
1
...
...
@@ -287,6 +308,27 @@ AnimatorStateTransition:
m_InterruptionSource
:
0
m_OrderedInterruption
:
1
m_CanTransitionToSelf
:
1
---
!u!1101
&1101891476493562990
AnimatorStateTransition
:
m_ObjectHideFlags
:
1
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
0
}
m_Name
:
m_Conditions
:
[]
m_DstStateMachine
:
{
fileID
:
0
}
m_DstState
:
{
fileID
:
1102455672269219010
}
m_Solo
:
0
m_Mute
:
0
m_IsExit
:
0
serializedVersion
:
3
m_TransitionDuration
:
0.25
m_TransitionOffset
:
0
m_ExitTime
:
0.516129
m_HasExitTime
:
1
m_HasFixedDuration
:
1
m_InterruptionSource
:
0
m_OrderedInterruption
:
1
m_CanTransitionToSelf
:
1
---
!u!1102
&1102078500202870446
AnimatorState
:
serializedVersion
:
5
...
...
Assets/Animation/Enemy/
m
elee.controller.meta
→
Assets/Animation/Enemy/
GroundM
elee.controller.meta
View file @
7b447510
File moved
Assets/Animation/Enemy/Spider.meta
0 → 100644
View file @
7b447510
fileFormatVersion: 2
guid: 3277ff2aa5f84f945815b90b5dc1295c
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Assets/Animation/Enemy/Spider/Spider Idle.anim
0 → 100644
View file @
7b447510
%YAML
1.1
%TAG
!u!
tag:unity3d.com,2011:
---
!u!74
&7400000
AnimationClip
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
0
}
m_Name
:
Spider Idle
serializedVersion
:
6
m_Legacy
:
0
m_Compressed
:
0
m_UseHighQualityCurve
:
1
m_RotationCurves
:
[]
m_CompressedRotationCurves
:
[]
m_EulerCurves
:
[]
m_PositionCurves
:
[]
m_ScaleCurves
:
[]
m_FloatCurves
:
[]
m_PPtrCurves
:
-
curve
:
-
time
:
0
value
:
{
fileID
:
21300000
,
guid
:
3f4a1ae9be64d9f46b0fd7fbffeb58a4
,
type
:
3
}
attribute
:
m_Sprite
path
:
classID
:
212
script
:
{
fileID
:
0
}
m_SampleRate
:
60
m_WrapMode
:
0
m_Bounds
:
m_Center
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_Extent
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_ClipBindingConstant
:
genericBindings
:
-
serializedVersion
:
2
path
:
0
attribute
:
0
script
:
{
fileID
:
0
}
typeID
:
212
customType
:
23
isPPtrCurve
:
1
pptrCurveMapping
:
-
{
fileID
:
21300000
,
guid
:
3f4a1ae9be64d9f46b0fd7fbffeb58a4
,
type
:
3
}
m_AnimationClipSettings
:
serializedVersion
:
2
m_AdditiveReferencePoseClip
:
{
fileID
:
0
}
m_AdditiveReferencePoseTime
:
0
m_StartTime
:
0
m_StopTime
:
0.016666668
m_OrientationOffsetY
:
0
m_Level
:
0
m_CycleOffset
:
0
m_HasAdditiveReferencePose
:
0
m_LoopTime
:
0
m_LoopBlend
:
0
m_LoopBlendOrientation
:
0
m_LoopBlendPositionY
:
0
m_LoopBlendPositionXZ
:
0
m_KeepOriginalOrientation
:
0
m_KeepOriginalPositionY
:
1
m_KeepOriginalPositionXZ
:
0
m_HeightFromFeet
:
0
m_Mirror
:
0
m_EditorCurves
:
[]
m_EulerEditorCurves
:
[]
m_HasGenericRootTransform
:
0
m_HasMotionFloatCurves
:
0
m_GenerateMotionCurves
:
0
m_Events
:
[]
Assets/Animation/Enemy/Spider/Spider Idle.anim.meta
0 → 100644
View file @
7b447510
fileFormatVersion: 2
guid: e38ac228fc296204b80018c3350e6b3d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:
Assets/Data/dropData_exam.csv
View file @
7b447510
스테이지,ID,이름,드랍하지 않음,생명석 1개,생명석 2개,생명석 3개,생명석 4개,생명석 5개,금 포션,자수정 포션,습작 아이템,범작,수작,걸작 아이템,습작 애드온,범작,수작,걸작 애드온
고대유적,,,,,,,,,,,,,,,,,,
고대유적,42,전갈,7,4,1,0,0,0,0,0,2,0,0,0,2,1,0,0
고대유적,101,고블린,7,4,1,0,0,0,0,0,2,0,0,0,2,1,0,0
고대유적,102,고블린 보초병,4,3,0,0,0,0,0,0,0,0,0,0,1,0,0,0
고대유적,103,날쌘 고블린,3,5,1,0,0,0,0,0,2,0,0,0,2,1,0,0
...
...
@@ -17,7 +16,7 @@
고대유적,1230,새끼 박쥐,5,4,0,0,0,0,0,0,1,0,0,0,2,0,0,0
고대유적,115,엘리게이터-1,1,4,6,3,1,0,2,0,5,5,3,1,3,1,1,0
고대유적,116,엘리게이터-2,1,4,6,3,1,0,2,0,5,5,3,1,3,1,1,0
고대유적,
117,테스트용데이터,0,0,0,1,0,0,1,0,0,0,0,0,1,0
,0,0
고대유적,
42,테스트거미,7,4,1,0,0,0,0,0,2,0,0,0,2,1
,0,0
고대유적,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,
...
...
Assets/EnemyPhysics.cs
deleted
100644 → 0
View file @
aa6e6da0
using
System.Collections
;
using
System.Collections.Generic
;
using
UnityEngine
;
public
class
EnemyPhysics
:
MonoBehaviour
{
}
Assets/Prefabs/Characters/Enemy/Goblin.prefab
View file @
7b447510
...
...
@@ -61,7 +61,7 @@ GameObject:
m_Icon
:
{
fileID
:
0
}
m_NavMeshLayer
:
0
m_StaticEditorFlags
:
0
m_IsActive
:
1
m_IsActive
:
0
---
!u!1
&1734061800721222
GameObject
:
m_ObjectHideFlags
:
1
...
...
@@ -286,7 +286,7 @@ MonoBehaviour:
m_GameObject
:
{
fileID
:
1225288737757304
}
m_Enabled
:
1
m_EditorHideFlags
:
0
m_Script
:
{
fileID
:
11500000
,
guid
:
2d73d07fdab522c4aa045e1cb6a92e8c
,
type
:
3
}
m_Script
:
{
fileID
:
11500000
,
guid
:
a11d071a77ab21c48882c6c6e4db8f17
,
type
:
3
}
m_Name
:
m_EditorClassIdentifier
:
monsterID
:
101
...
...
@@ -294,11 +294,11 @@ MonoBehaviour:
weight
:
15
patrolRange
:
3
noticeRange
:
2
attackRange
:
1.2
patrolSpeed
:
1
trackSpeed
:
2.5
knockbackPercentage
:
-
0.5
attackRange
:
1.2
---
!u!114
&114173716467154830
MonoBehaviour
:
m_ObjectHideFlags
:
1
...
...
@@ -373,7 +373,7 @@ SpriteRenderer:
m_AutoUVMaxAngle
:
89
m_LightmapParameters
:
{
fileID
:
0
}
m_SortingLayerID
:
-2078941185
m_SortingLayer
:
6
m_SortingLayer
:
7
m_SortingOrder
:
0
m_Sprite
:
{
fileID
:
21300000
,
guid
:
71335108d30aa0e4a90179a09895440e
,
type
:
3
}
m_Color
:
{
r
:
1
,
g
:
1
,
b
:
1
,
a
:
1
}
...
...
Assets/Prefabs/Characters/Enemy/
DummyScorpion
.prefab
→
Assets/Prefabs/Characters/Enemy/
Spider
.prefab
View file @
7b447510
...
...
@@ -19,25 +19,56 @@ GameObject:
serializedVersion
:
6
m_Component
:
-
component
:
{
fileID
:
4804976410232030
}
-
component
:
{
fileID
:
212906216626823524
}
-
component
:
{
fileID
:
50615514765813310
}
-
component
:
{
fileID
:
50573848117970958
}
-
component
:
{
fileID
:
61188111102399610
}
-
component
:
{
fileID
:
95600343560029758
}
-
component
:
{
fileID
:
114425347246421446
}
m_Layer
:
0
m_Name
:
DummyScorpion
m_Layer
:
16
m_Name
:
Spider
m_TagString
:
Enemy
m_Icon
:
{
fileID
:
0
}
m_NavMeshLayer
:
0
m_StaticEditorFlags
:
0
m_IsActive
:
1
---
!u!1
&1
923610854882692
---
!u!1
&1
822069857481414
GameObject
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
100100000
}
serializedVersion
:
6
m_Component
:
-
component
:
{
fileID
:
4205286087293746
}
-
component
:
{
fileID
:
114337624805266014
}
m_Layer
:
0
m_Name
:
HPBar
m_TagString
:
Untagged
m_Icon
:
{
fileID
:
0
}
m_NavMeshLayer
:
0
m_StaticEditorFlags
:
0
m_IsActive
:
1
---
!u!1
&1860030746010208
GameObject
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
100100000
}
serializedVersion
:
6
m_Component
:
-
component
:
{
fileID
:
4001151502382822
}
-
component
:
{
fileID
:
212993065858080250
}
-
component
:
{
fileID
:
95156341909549574
}
-
component
:
{
fileID
:
114803474034076246
}
m_Layer
:
0
m_Name
:
Body
m_TagString
:
Untagged
m_Icon
:
{
fileID
:
0
}
m_NavMeshLayer
:
0
m_StaticEditorFlags
:
0
m_IsActive
:
1
---
!u!1
&1923610854882692
GameObject
:
m_ObjectHideFlags
:
1
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
100100000
}
serializedVersion
:
6
m_Component
:
-
component
:
{
fileID
:
4370838883948786
}
-
component
:
{
fileID
:
61019308264186112
}
-
component
:
{
fileID
:
114106922099255344
}
...
...
@@ -48,17 +79,44 @@ GameObject:
m_NavMeshLayer
:
0
m_StaticEditorFlags
:
0
m_IsActive
:
1
---
!u!4
&4001151502382822
Transform
:
m_ObjectHideFlags
:
1
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
100100000
}
m_GameObject
:
{
fileID
:
1860030746010208
}
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
:
4370838883948786
}
m_Father
:
{
fileID
:
4804976410232030
}
m_RootOrder
:
0
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
---
!u!4
&4205286087293746
Transform
:
m_ObjectHideFlags
:
1
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
100100000
}
m_GameObject
:
{
fileID
:
1822069857481414
}
m_LocalRotation
:
{
x
:
-0
,
y
:
-0
,
z
:
-0
,
w
:
1
}
m_LocalPosition
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_LocalScale
:
{
x
:
2
,
y
:
2
,
z
:
1
}
m_Children
:
[]
m_Father
:
{
fileID
:
4804976410232030
}
m_RootOrder
:
1
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
---
!u!4
&4370838883948786
Transform
:
m_ObjectHideFlags
:
1
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
100100000
}
m_GameObject
:
{
fileID
:
1923610854882692
}
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
:
0
}
m_LocalScale
:
{
x
:
1
,
y
:
1
,
z
:
1
}
m_Children
:
[]
m_Father
:
{
fileID
:
4
804976410232030
}
m_Father
:
{
fileID
:
4
001151502382822
}
m_RootOrder
:
0
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
---
!u!4
&4804976410232030
...
...
@@ -68,21 +126,22 @@ Transform:
m_PrefabInternal
:
{
fileID
:
100100000
}
m_GameObject
:
{
fileID
:
1346522711063220
}
m_LocalRotation
:
{
x
:
0
,
y
:
0
,
z
:
0
,
w
:
1
}
m_LocalPosition
:
{
x
:
7.2689643
,
y
:
1.866356
1
,
z
:
0
}
m_LocalPosition
:
{
x
:
5
,
y
:
1
,
z
:
0
}
m_LocalScale
:
{
x
:
0.5
,
y
:
0.5
,
z
:
1
}
m_Children
:
-
{
fileID
:
4370838883948786
}
-
{
fileID
:
4001151502382822
}
-
{
fileID
:
4205286087293746
}
m_Father
:
{
fileID
:
0
}
m_RootOrder
:
0
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
---
!u!50
&50
615514765813310
---
!u!50
&50
573848117970958
Rigidbody2D
:
serializedVersion
:
4
m_ObjectHideFlags
:
1
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
100100000
}
m_GameObject
:
{
fileID
:
1346522711063220
}
m_BodyType
:
0
m_BodyType
:
1
m_Simulated
:
1
m_UseFullKinematicContacts
:
0
m_UseAutoMass
:
0
...
...
@@ -94,31 +153,31 @@ Rigidbody2D:
m_Interpolate
:
0
m_SleepingMode
:
1
m_CollisionDetection
:
0
m_Constraints
:
4
m_Constraints
:
3
---
!u!61
&61019308264186112
BoxCollider2D
:
m_ObjectHideFlags
:
1
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
100100000
}
m_GameObject
:
{
fileID
:
1923610854882692
}
m_Enabled
:
0
m_Enabled
:
1
m_Density
:
1
m_Material
:
{
fileID
:
0
}
m_IsTrigger
:
1
m_UsedByEffector
:
0
m_UsedByComposite
:
0
m_Offset
:
{
x
:
-
2.21024
,
y
:
0.47439384
}
m_Offset
:
{
x
:
-
0.00001335144
,
y
:
0.00009530783
}
m_SpriteTilingProperty
:
border
:
{
x
:
0
,
y
:
0
,
z
:
0
,
w
:
0
}
pivot
:
{
x
:
0
,
y
:
0
}
oldSize
:
{
x
:
0
,
y
:
0
}
newSize
:
{
x
:
0
,
y
:
0
}
adaptiveTilingThreshold
:
0
pivot
:
{
x
:
0
.5
,
y
:
0.5
}
oldSize
:
{
x
:
6.64
,
y
:
5.48
}
newSize
:
{
x
:
6.64
,
y
:
5.48
}
adaptiveTilingThreshold
:
0
.5
drawMode
:
0
adaptiveTiling
:
0
m_AutoTiling
:
0
serializedVersion
:
2
m_Size
:
{
x
:
5.42048
,
y
:
3.3288422
}
m_Size
:
{
x
:
1.2499847
,
y
:
1.250398
}
m_EdgeRadius
:
0
---
!u!61
&61188111102399610
BoxCollider2D
:
...
...
@@ -128,11 +187,11 @@ BoxCollider2D:
m_GameObject
:
{
fileID
:
1346522711063220
}
m_Enabled
:
1
m_Density
:
1
m_Material
:
{
fileID
:
0
}
m_Material
:
{
fileID
:
6200000
,
guid
:
90e689a435f304c469db49daef28ed89
,
type
:
2
}
m_IsTrigger
:
0
m_UsedByEffector
:
0
m_UsedByComposite
:
0
m_Offset
:
{
x
:
0
,
y
:
0
}
m_Offset
:
{
x
:
0
.004562378
,
y
:
0
}
m_SpriteTilingProperty
:
border
:
{
x
:
0
,
y
:
0
,
z
:
0
,
w
:
0
}
pivot
:
{
x
:
0.5
,
y
:
0.5
}
...
...
@@ -143,18 +202,18 @@ BoxCollider2D:
adaptiveTiling
:
0
m_AutoTiling
:
0
serializedVersion
:
2
m_Size
:
{
x
:
6.64
,
y
:
5.48
}
m_Size
:
{
x
:
1.250679
,
y
:
1.2505887
}
m_EdgeRadius
:
0
---
!u!95
&95
600343560029758
---
!u!95
&95
156341909549574
Animator
:
serializedVersion
:
3
m_ObjectHideFlags
:
1
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
100100000
}
m_GameObject
:
{
fileID
:
1
346522711063220
}
m_GameObject
:
{
fileID
:
1
860030746010208
}
m_Enabled
:
1
m_Avatar
:
{
fileID
:
0
}
m_Controller
:
{
fileID
:
9100000
,
guid
:
a2991abac35f9ff4b933c50e1d598f38
,
type
:
2
}
m_Controller
:
{
fileID
:
9100000
,
guid
:
c8563e7de963bcc4a90cafd485471e9b
,
type
:
2
}
m_CullingMode
:
0
m_UpdateMode
:
0
m_ApplyRootMotion
:
0
...
...
@@ -174,34 +233,50 @@ MonoBehaviour:
m_Script
:
{
fileID
:
11500000
,
guid
:
908a1b16b9926f747807d321c5ecc8af
,
type
:
3
}
m_Name
:
m_EditorClassIdentifier
:
damage
:
0
---
!u!114
&114
425347246421446
damage
:
2
---
!u!114
&114
337624805266014
MonoBehaviour
:
m_ObjectHideFlags
:
1
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
100100000
}
m_GameObject
:
{
fileID
:
1346522711063220
}
m_GameObject
:
{
fileID
:
1822069857481414
}
m_Enabled
:
1
m_EditorHideFlags
:
0
m_Script
:
{
fileID
:
11500000
,
guid
:
493db5529c03fce44a56a2211507667e
,
type
:
3
}
m_Name
:
m_EditorClassIdentifier
:
width
:
0.4
height
:
0.1
yOffset
:
1.3
barPrefab
:
{
fileID
:
1489501648010076
,
guid
:
bd708b07601179842bbd803b54afda40
,
type
:
2
}
bor
:
{
fileID
:
21300000
,
guid
:
f978754916ff69444aa0bd613b44f2c5
,
type
:
3
}
red
:
{
fileID
:
21300000
,
guid
:
014c5204ddcb6e54e86aadaa34227552
,
type
:
3
}
---
!u!114
&114803474034076246
MonoBehaviour
:
m_ObjectHideFlags
:
1
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
100100000
}
m_GameObject
:
{
fileID
:
1860030746010208
}
m_Enabled
:
1
m_EditorHideFlags
:
0
m_Script
:
{
fileID
:
11500000
,
guid
:
2d73d07fdab522c4aa045e1cb6a92e8c
,
type
:
3
}
m_Script
:
{
fileID
:
11500000
,
guid
:
7ce0adb34b612484eb45a52b7a457aba
,
type
:
3
}
m_Name
:
m_EditorClassIdentifier
:
monsterID
:
42
maxHealth
:
0
weight
:
0
patrolRange
:
0
noticeRange
:
0
attackRange
:
0
patrolSpeed
:
0
trackSpeed
:
0
attackDelay
:
0
attackDuration
:
0
---
!u!212
&212906216626823524
maxHealth
:
10
weight
:
10
patrolRange
:
3
noticeRange
:
2
patrolSpeed
:
1
trackSpeed
:
1.5
knockbackPercentage
:
-
0.5
---
!u!212
&212993065858080250
SpriteRenderer
:
m_ObjectHideFlags
:
1
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInternal
:
{
fileID
:
100100000
}
m_GameObject
:
{
fileID
:
1
346522711063220
}
m_GameObject
:
{
fileID
:
1
860030746010208
}
m_Enabled
:
1
m_CastShadows
:
0
m_ReceiveShadows
:
0
...
...
@@ -228,17 +303,17 @@ SpriteRenderer:
m_AutoUVMaxDistance
:
0.5
m_AutoUVMaxAngle
:
89
m_LightmapParameters
:
{
fileID
:
0
}
m_SortingLayerID
:
0
m_SortingLayer
:
0
m_SortingLayerID
:
-2078941185
m_SortingLayer
:
7
m_SortingOrder
:
0
m_Sprite
:
{
fileID
:
21300000
,
guid
:
9588a72c7c886de4a999bf6cc7948b8
4
,
type
:
3
}
m_Sprite
:
{
fileID
:
21300000
,
guid
:
3f4a1ae9be64d9f46b0fd7fbffeb58a
4
,
type
:
3
}
m_Color
:
{
r
:
1
,
g
:
1
,
b
:
1
,
a
:
1
}
m_FlipX
:
0
m_FlipY
:
0
m_DrawMode
:
0
m_Size
:
{
x
:
6.64
,
y
:
5.48
}
m_Size
:
{
x
:
1.25
,
y
:
1.25
}
m_AdaptiveModeThreshold
:
0.5
m_SpriteTileMode
:
0
m_WasSpriteAssigned
:
1
m_MaskInteraction
:
0
m_SpriteSortPoint
:
0
m_SpriteSortPoint
:
1
Assets/Prefabs/Characters/Enemy/
DummyScorpion
.prefab.meta
→
Assets/Prefabs/Characters/Enemy/
Spider
.prefab.meta
View file @
7b447510
File moved
Assets/Prefabs/EnemyManager.prefab
View file @
7b447510
...
...
@@ -51,24 +51,9 @@ MonoBehaviour:
m_Script
:
{
fileID
:
11500000
,
guid
:
fc7c7899a8a94c24cb9eb34d432133ce
,
type
:
3
}
m_Name
:
m_EditorClassIdentifier
:
player
:
{
fileID
:
1623439448163086
,
guid
:
3d077a5f727dd1e4780e9265ed26e036
,
type
:
2
}
dropTableData
:
{
fileID
:
4900000
,
guid
:
6216895c658a2af40890a4446cc10a8c
,
type
:
3
}
dropItemList
:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
enemyPrefab
:
-
{
fileID
:
1636491341446076
,
guid
:
a164c147037e89448820f7387c724c42
,
type
:
2
}
-
{
fileID
:
1346522711063220
,
guid
:
e4298313f9e94c44fb057542ec7ad273
,
type
:
2
}
EnemySpawnCount
:
0
EnemyDeadCount
:
0
Assets/Scenes/testEnemy.unity
View file @
7b447510
This source diff could not be displayed because it is too large. You can
view the blob
instead.
Assets/Scripts/Characters/Enemy/Animator State/EnemyAirIdle.cs
0 → 100644
View file @
7b447510
using
System.Collections
;
using
System.Collections.Generic
;
using
UnityEngine
;
public
class
EnemyAirIdle
:
StateMachineBehaviour
{
float
patrolRange
;
float
patrolSpeed
;
float
noticeRange
;
Vector2
origin
;
Transform
animatorRoot
;
EnemyAir
enemy
;
// OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
override
public
void
OnStateEnter
(
Animator
animator
,
AnimatorStateInfo
stateInfo
,
int
layerIndex
)
{
origin
=
animator
.
transform
.
position
;
animatorRoot
=
animator
.
transform
.
parent
;
enemy
=
animator
.
GetComponent
<
EnemyAir
>();
patrolRange
=
enemy
.
patrolRange
;
noticeRange
=
enemy
.
noticeRange
;
patrolSpeed
=
enemy
.
patrolSpeed
;
}
// OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks
override
public
void
OnStateUpdate
(
Animator
animator
,
AnimatorStateInfo
stateInfo
,
int
layerIndex
)
{
if
(
enemy
.
PlayerDistance
<
noticeRange
)
{
animator
.
SetTrigger
(
"TrackTrigger"
);
return
;
}
}
// OnStateExit is called when a transition ends and the state machine finishes evaluating this state
//override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) {
//
//}
// OnStateMove is called right after Animator.OnAnimatorMove(). Code that processes and affects root motion should be implemented here
//override public void OnStateMove(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) {
//
//}
// OnStateIK is called right after Animator.OnAnimatorIK(). Code that sets up animation IK (inverse kinematics) should be implemented here.
//override public void OnStateIK(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) {
//
//}
}
Assets/
EnemyPhysics
.cs.meta
→
Assets/
Scripts/Characters/Enemy/Animator State/EnemyAirIdle
.cs.meta
View file @
7b447510
fileFormatVersion: 2
guid:
026903d6f2ef73c4b8c30d71a7b40081
guid:
11413b136ebb3b54d9ad632cc4ef4d60
MonoImporter:
externalObjects: {}
serializedVersion: 2
...
...
Assets/Scripts/Characters/Enemy/Animator State/EnemyAirTrack.cs
0 → 100644
View file @
7b447510
using
System.Collections
;
using
System.Collections.Generic
;
using
UnityEngine
;
public
class
EnemyAirTrack
:
StateMachineBehaviour
{
float
trackSpeed
;
GameObject
player
;
Transform
animatorRoot
;
EnemyAir
enemy
;
Vector2
direction
;
// OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
override
public
void
OnStateEnter
(
Animator
animator
,
AnimatorStateInfo
stateInfo
,
int
layerIndex
)
{
animatorRoot
=
animator
.
transform
.
parent
;
enemy
=
animator
.
GetComponent
<
EnemyAir
>();
player
=
EnemyManager
.
Instance
.
Player
;
trackSpeed
=
enemy
.
trackSpeed
;
SetDirection
();
}
// OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks
override
public
void
OnStateUpdate
(
Animator
animator
,
AnimatorStateInfo
stateInfo
,
int
layerIndex
)
{
SetDirection
();
Vector2
vel
=
direction
*
trackSpeed
;
enemy
.
ChangeVelocityXY_noOption
(
vel
);
}
// OnStateExit is called when a transition ends and the state machine finishes evaluating this state
//override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) {
//
//}
// OnStateMove is called right after Animator.OnAnimatorMove(). Code that processes and affects root motion should be implemented here
//override public void OnStateMove(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) {
//
//}
// OnStateIK is called right after Animator.OnAnimatorIK(). Code that sets up animation IK (inverse kinematics) should be implemented here.
//override public void OnStateIK(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) {
//
//}
private
void
SetDirection
()
{
direction
=
player
.
transform
.
position
-
animatorRoot
.
position
;
float
angle
=
Mathf
.
Atan2
(
direction
.
y
,
direction
.
x
)
*
Mathf
.
Rad2Deg
;
enemy
.
ChangeAngleZ_noOption
(
angle
-
90.0f
);
}
}
Assets/Scripts/Characters/Enemy/Animator State/EnemyAirTrack.cs.meta
0 → 100644
View file @
7b447510
fileFormatVersion: 2
guid: b24234f0901ca8344922d2c140a48dd2
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
Assets/Scripts/Characters/Enemy/Animator State/EnemyMeleeIdle.cs
View file @
7b447510
...
...
@@ -8,20 +8,20 @@ public class EnemyMeleeIdle : StateMachineBehaviour {
float
noticeRange
;
Vector2
origin
;
Transform
animatorRoot
;
Enemy
enemy
;
Enemy
Ground
enemy
;
// OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
override
public
void
OnStateEnter
(
Animator
animator
,
AnimatorStateInfo
stateInfo
,
int
layerIndex
)
{
origin
=
animator
.
transform
.
position
;
animatorRoot
=
animator
.
transform
.
parent
;
enemy
=
animator
.
GetComponent
<
Enemy
>();
enemy
=
animator
.
GetComponent
<
Enemy
Ground
>();
patrolRange
=
enemy
.
patrolRange
;
noticeRange
=
enemy
.
noticeRange
;
patrolSpeed
=
enemy
.
patrolSpeed
;
enemy
.
ChangeDir
(
NumeratedDir
.
Left
);
enemy
.
ChangeVelocityX
(
enemy
.
MoveDir
*
patrolSpeed
);
enemy
.
ChangeDir
_noOption
(
NumeratedDir
.
Left
);
enemy
.
ChangeVelocityX
_noOption
(
enemy
.
MoveDir
*
patrolSpeed
);
}
// OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks
...
...
@@ -40,8 +40,8 @@ public class EnemyMeleeIdle : StateMachineBehaviour {
enemy
.
CliffTest
[(
enemy
.
MoveDir
+
1
)
/
2
]
)
{
enemy
.
ChangeDir
(
enemy
.
MoveDir
*
-
1
);
enemy
.
ChangeVelocityX
(
enemy
.
MoveDir
*
patrolSpeed
);
enemy
.
ChangeDir
_noOption
(
enemy
.
MoveDir
*
-
1
);
enemy
.
ChangeVelocityX
_noOption
(
enemy
.
MoveDir
*
patrolSpeed
);
}
}
}
...
...
Assets/Scripts/Characters/Enemy/Animator State/EnemyMeleeTrack.cs
View file @
7b447510
...
...
@@ -7,7 +7,7 @@ public class EnemyMeleeTrack : StateMachineBehaviour {
float
attackRange
;
GameObject
player
;
Transform
animatorRoot
;
Enemy
enemy
;
Enemy
Ground
enemy
;
readonly
int
maxFrame
=
10
;
int
frameCounter
=
0
;
...
...
@@ -15,21 +15,21 @@ public class EnemyMeleeTrack : StateMachineBehaviour {
// OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
override
public
void
OnStateEnter
(
Animator
animator
,
AnimatorStateInfo
stateInfo
,
int
layerIndex
)
{
animatorRoot
=
animator
.
transform
.
parent
;
enemy
=
animator
.
GetComponent
<
Enemy
>();
enemy
=
animator
.
GetComponent
<
Enemy
Ground
>();
player
=
EnemyManager
.
Instance
.
Player
;
trackSpeed
=
enemy
.
trackSpeed
;
attackRange
=
enemy
.
attackRange
;
NumeratedDir
trackDir
=
(
animatorRoot
.
position
.
x
-
player
.
transform
.
position
.
x
>
0
)
?
NumeratedDir
.
Left
:
NumeratedDir
.
Right
;
enemy
.
ChangeDir
(
trackDir
);
enemy
.
ChangeDir
_noOption
(
trackDir
);
if
(
enemy
.
CliffTest
[(
enemy
.
MoveDir
+
1
)
/
2
]
||
animator
.
GetComponent
<
Enemy
>().
PlayerDistance
<
attackRange
)
{
enemy
.
ChangeVelocityX
(
0.0f
);
enemy
.
ChangeVelocityX
_noOption
(
0.0f
);
}
else
{
enemy
.
ChangeVelocityX
(
enemy
.
MoveDir
*
trackSpeed
);
enemy
.
ChangeVelocityX
_noOption
(
enemy
.
MoveDir
*
trackSpeed
);
}
}
...
...
@@ -43,18 +43,18 @@ public class EnemyMeleeTrack : StateMachineBehaviour {
int
integerDir
=
enemy
.
MoveDir
;
if
(
enemy
.
WallTest
[(
integerDir
+
1
)
/
2
]
||
enemy
.
CliffTest
[(
integerDir
+
1
)
/
2
])
{
enemy
.
ChangeVelocityX
(
0.0f
);
enemy
.
ChangeVelocityX
_noOption
(
0.0f
);
}
else
{
enemy
.
ChangeVelocityX
(
enemy
.
MoveDir
*
trackSpeed
);
enemy
.
ChangeVelocityX
_noOption
(
enemy
.
MoveDir
*
trackSpeed
);
}
frameCounter
+=
1
;
if
(
frameCounter
>=
maxFrame
)
{
NumeratedDir
trackDir
=
(
animatorRoot
.
position
.
x
-
player
.
transform
.
position
.
x
>
0
)
?
NumeratedDir
.
Left
:
NumeratedDir
.
Right
;
enemy
.
ChangeDir
(
trackDir
);
enemy
.
ChangeDir
_noOption
(
trackDir
);
frameCounter
=
0
;
}
}
...
...
Assets/Scripts/Characters/Enemy/Enemy.cs
View file @
7b447510
...
...
@@ -3,7 +3,7 @@ using System.Collections;
using
UnityEngine
;
using
Random
=
UnityEngine
.
Random
;
public
class
Enemy
:
MonoBehaviour
{
public
abstract
class
Enemy
:
MonoBehaviour
{
// data
...
...
@@ -11,6 +11,10 @@ public class Enemy : MonoBehaviour {
readonly
float
[]
immunity_time
=
new
float
[(
int
)
EnemyDebuffCase
.
END_POINTER
]
{
0.0f
,
3.0f
,
6.0f
,
6.0f
,
6.0f
};
DebuffState
[]
debuffState
;
float
fireDuration
=
0.0f
;
protected
abstract
IEnumerator
OnIce
(
float
duration
);
protected
abstract
IEnumerator
OnStun
(
float
duration
);
// protected abstract IEnumerator OnBlind(float duration);
// protected abstract IEnumerator OnCharm(float duration);
// stat
public
int
monsterID
;
...
...
@@ -18,154 +22,59 @@ public class Enemy : MonoBehaviour {
public
float
weight
;
public
float
patrolRange
;
public
float
noticeRange
;
public
float
attackRange
;
public
float
patrolSpeed
;
public
float
trackSpeed
;
public
float
[]
knockbackPercentage
;
public
float
currHealth
{
get
;
pr
ivate
set
;
}
public
float
currHealth
{
get
;
pr
otected
set
;
}
// manager
pr
ivate
InventoryManager
inventoryManager
;
pr
ivate
LifeStoneManager
lifeStoneManager
;
pr
ivate
EnemyManager
enemyManager
;
pr
otected
InventoryManager
inventoryManager
;
pr
otected
LifeStoneManager
lifeStoneManager
;
pr
otected
EnemyManager
enemyManager
;
// for movement
private
Animator
animator
;
private
float
damagedAnimLength
;
public
bool
Invisible
{
get
;
private
set
;
}
public
bool
MovementLock
{
get
;
private
set
;
}
public
bool
KnockbackLock
{
get
;
private
set
;
}
public
float
PlayerDistance
{
get
;
private
set
;
}
public
int
MoveDir
{
get
;
private
set
;
}
public
bool
[]
WallTest
{
get
;
private
set
;
}
public
bool
[]
CliffTest
{
get
;
private
set
;
}
protected
Animator
animator
;
protected
float
stunnedAnimLength
;
public
bool
Invisible
{
get
;
protected
set
;
}
public
bool
MovementLock
{
get
;
protected
set
;
}
public
bool
KnockbackLock
{
get
;
protected
set
;
}
public
float
PlayerDistance
{
get
;
protected
set
;
}
protected
abstract
IEnumerator
Knockback
(
float
knockbackDist
,
float
knockbackTime
);
// drop item
private
int
[]
dropTable
;
// method
// Standard method
pr
ivate
void
Awake
()
pr
otected
virtual
void
Awake
()
{
enemyManager
=
EnemyManager
.
Instance
;
inventoryManager
=
InventoryManager
.
Instance
;
lifeStoneManager
=
LifeStoneManager
.
Instance
;
animator
=
GetComponent
<
Animator
>();
WallTest
=
new
bool
[]
{
false
,
false
};
CliffTest
=
new
bool
[]
{
false
,
false
};
DebuffState
_temp
=
DebuffState
.
Off
;
debuffState
=
new
DebuffState
[(
int
)
EnemyDebuffCase
.
END_POINTER
]
{
_temp
,
_temp
,
_temp
,
_temp
,
_temp
};
AnimationClip
[]
clips
=
animator
.
runtimeAnimatorController
.
animationClips
;
foreach
(
var
clip
in
clips
)
{
if
(
clip
.
name
.
Contains
(
"
Damaged"
))
{
damag
edAnimLength
=
clip
.
length
;
}
}
foreach
(
var
clip
in
clips
)
{
if
(
clip
.
name
.
Contains
(
"
Stunned"
))
{
stunn
edAnimLength
=
clip
.
length
;
}
}
Array
.
Sort
(
knockbackPercentage
);
Array
.
Reverse
(
knockbackPercentage
);
}
pr
ivate
void
Start
()
pr
otected
virtual
void
Start
()
{
MoveDir
=
(
int
)
NumeratedDir
.
Left
;
currHealth
=
maxHealth
;
Invisible
=
MovementLock
=
false
;
Invisible
=
MovementLock
=
KnockbackLock
=
false
;
dropTable
=
enemyManager
.
DropTableByID
[
monsterID
];
PlayerDistance
=
Vector2
.
Distance
(
enemyManager
.
Player
.
transform
.
position
,
transform
.
parent
.
position
);
}
pr
ivate
void
FixedUpdate
()
pr
otected
virtual
void
FixedUpdate
()
{
PlayerDistance
=
Vector2
.
Distance
(
enemyManager
.
Player
.
transform
.
position
,
transform
.
parent
.
position
);
CheckCliff
();
CheckWall
();
}
// Movement & Physics
// - Check whether enemy is near to cliff
private
void
CheckCliff
()
{
Vector2
velocity
=
transform
.
parent
.
GetComponent
<
Rigidbody2D
>().
velocity
;
Vector2
colliderSize
=
transform
.
parent
.
GetComponent
<
BoxCollider2D
>().
size
;
foreach
(
int
Dir
in
Enum
.
GetValues
(
typeof
(
NumeratedDir
)))
{
Vector2
origin
=
(
Vector2
)
transform
.
parent
.
position
+
Dir
*
new
Vector2
(
colliderSize
.
x
/
2.0f
,
0
);
Vector2
direction
=
Vector2
.
down
;
float
distance
=
colliderSize
.
y
/
4.0f
;
int
layerMask
=
LayerMask
.
NameToLayer
(
"platform"
);
RaycastHit2D
hit
=
Physics2D
.
Raycast
(
origin
,
direction
,
distance
,
layerMask
);
CliffTest
[(
Dir
+
1
)
/
2
]
=
(
hit
.
collider
==
null
);
}
}
// - Check whether enemy is touching wall
private
void
CheckWall
()
{
Vector2
colliderSize
=
transform
.
parent
.
GetComponent
<
BoxCollider2D
>().
size
;
foreach
(
int
Dir
in
Enum
.
GetValues
(
typeof
(
NumeratedDir
)))
{
Vector2
origin
=
(
Vector2
)
transform
.
parent
.
position
+
new
Vector2
(
Dir
*
colliderSize
.
x
/
2.0f
,
colliderSize
.
y
);
Vector2
direction
=
Vector2
.
right
*
Dir
;
float
distance
=
0.5f
;
LayerMask
layerMask
=
LayerMask
.
GetMask
(
"Wall"
,
"OuterWall"
);
RaycastHit2D
hit
=
Physics2D
.
Raycast
(
origin
,
direction
,
distance
,
layerMask
);
WallTest
[(
Dir
+
1
)
/
2
]
=
(
hit
.
collider
!=
null
);
}
}
// - Change direction, and speed of rigidbody of enemy
public
void
ChangeVelocityX
(
float
val
)
{
ChangeVelocityX_lock
(
val
,
new
bool
[]
{
MovementLock
,
KnockbackLock
});
}
private
void
ChangeVelocityX_lock
(
float
val
,
bool
[]
lockArray
)
{
foreach
(
var
Lock
in
lockArray
)
{
if
(
Lock
)
return
;
}
Vector2
tempVelocity
=
transform
.
parent
.
GetComponent
<
Rigidbody2D
>().
velocity
;
tempVelocity
.
x
=
val
;
transform
.
parent
.
GetComponent
<
Rigidbody2D
>().
velocity
=
tempVelocity
;
}
public
void
ChangeDir
(
object
dir
)
{
ChangeDir_lock
(
dir
,
new
bool
[]
{
MovementLock
,
KnockbackLock
});
}
private
void
ChangeDir_lock
(
object
dir
,
bool
[]
lockArray
)
{
foreach
(
var
Lock
in
lockArray
)
{
if
(
Lock
)
return
;
}
MoveDir
=
(
int
)
dir
;
transform
.
parent
.
eulerAngles
=
((
NumeratedDir
)
dir
==
NumeratedDir
.
Left
)
?
new
Vector2
(
0
,
0
)
:
new
Vector2
(
0
,
180
);
}
// - Knockback coroutine
IEnumerator
Knockback
(
float
knockbackDist
,
float
knockbackTime
)
{
MovementLock
=
true
;
bool
[]
lockArray
=
new
bool
[]
{
false
,
KnockbackLock
};
int
knockbackDir
=
(
enemyManager
.
Player
.
transform
.
position
.
x
-
transform
.
parent
.
position
.
x
>=
0
)
?
-
1
:
1
;
float
knockbackVelocity
=
knockbackDir
*
knockbackDist
/
knockbackTime
;
ChangeDir_lock
(
knockbackDir
*
-
1
,
new
bool
[]
{
MovementLock
,
KnockbackLock
});
ChangeVelocityX_lock
(
knockbackVelocity
,
lockArray
);
for
(
float
timer
=
0
;
timer
<=
knockbackTime
;
timer
+=
Time
.
deltaTime
)
{
if
(
CliffTest
[(
knockbackDir
+
1
)
/
2
])
{
ChangeVelocityX_lock
(
0.0f
,
lockArray
);
yield
return
new
WaitForSeconds
(
knockbackTime
-
timer
);
break
;
}
yield
return
new
WaitForFixedUpdate
();
}
MovementLock
=
false
;
ChangeVelocityX
(
0.0f
);
}
// When damaged
...
...
@@ -210,6 +119,7 @@ public class Enemy : MonoBehaviour {
public
void
GetDamaged
(
float
damage
)
{
float
prevHealth
=
currHealth
;
currHealth
-=
damage
;
if
(
currHealth
<=
0
)
{
...
...
@@ -217,10 +127,23 @@ public class Enemy : MonoBehaviour {
animator
.
SetTrigger
(
"DeadTrigger"
);
return
;
}
float
currHealthPercentage
=
currHealth
/
maxHealth
;
float
prevHealthPercentage
=
prevHealth
/
maxHealth
;
foreach
(
float
percentage
in
knockbackPercentage
)
{
if
(
currHealthPercentage
>
percentage
)
{
break
;
}
if
(
prevHealthPercentage
>
percentage
)
{
animator
.
SetTrigger
(
"DamagedTrigger"
);
break
;
}
}
}
// - Apply debuff
pr
ivate
void
DebuffApply
(
float
[]
debuffTime
)
pr
otected
void
DebuffApply
(
float
[]
debuffTime
)
{
if
(
debuffState
[(
int
)
EnemyDebuffCase
.
Ice
]
==
DebuffState
.
On
){
OffDebuff
(
EnemyDebuffCase
.
Ice
);
...
...
@@ -254,10 +177,10 @@ public class Enemy : MonoBehaviour {
}
break
;
case
EnemyDebuffCase
.
Blind
:
StartCoroutine
(
OnBlind
(
duration
));
//
StartCoroutine(OnBlind(duration));
break
;
case
EnemyDebuffCase
.
Charm
:
StartCoroutine
(
OnCharm
(
duration
));
//
StartCoroutine(OnCharm(duration));
break
;
default
:
break
;
...
...
@@ -283,36 +206,6 @@ public class Enemy : MonoBehaviour {
debuffState
[(
int
)
EnemyDebuffCase
.
Fire
]
=
DebuffState
.
Off
;
}
IEnumerator
OnIce
(
float
duration
)
{
ChangeVelocityX_lock
(
0.0f
,
new
bool
[]
{
});
KnockbackLock
=
true
;
animator
.
SetTrigger
(
"StunnedTrigger"
);
animator
.
speed
=
damagedAnimLength
/
duration
;
yield
return
new
WaitForSeconds
(
duration
);
OffDebuff
(
EnemyDebuffCase
.
Ice
);
}
IEnumerator
OnStun
(
float
duration
)
{
ChangeVelocityX_lock
(
0.0f
,
new
bool
[]
{
});
animator
.
SetTrigger
(
"StunnedTrigger"
);
animator
.
speed
=
damagedAnimLength
/
duration
;
yield
return
new
WaitForSeconds
(
duration
);
OffDebuff
(
EnemyDebuffCase
.
Stun
);
yield
return
null
;
}
IEnumerator
OnBlind
(
float
duration
)
{
yield
return
null
;
}
IEnumerator
OnCharm
(
float
duration
)
{
yield
return
null
;
}
IEnumerator
ImmuneTimer
(
EnemyDebuffCase
Case
,
float
duration
)
{
debuffState
[(
int
)
Case
]
=
DebuffState
.
Immune
;
...
...
@@ -320,7 +213,7 @@ public class Enemy : MonoBehaviour {
debuffState
[(
int
)
Case
]
=
DebuffState
.
Off
;
}
pr
ivate
void
OffDebuff
(
EnemyDebuffCase
Case
)
pr
otected
void
OffDebuff
(
EnemyDebuffCase
Case
)
{
StartCoroutine
(
ImmuneTimer
(
Case
,
immunity_time
[(
int
)
Case
]));
switch
(
Case
)
...
...
Assets/Scripts/Characters/Enemy/EnemyAir.cs
0 → 100644
View file @
7b447510
using
System.Collections
;
using
System.Collections.Generic
;
using
UnityEngine
;
public
class
EnemyAir
:
Enemy
{
protected
override
IEnumerator
OnIce
(
float
duration
)
{
throw
new
System
.
NotImplementedException
();
}
protected
override
IEnumerator
OnStun
(
float
duration
)
{
throw
new
System
.
NotImplementedException
();
}
protected
override
IEnumerator
Knockback
(
float
knockbackDist
,
float
knockbackTime
)
{
throw
new
System
.
NotImplementedException
();
}
public
void
ChangeAngleZ_noOption
(
float
val
)
{
ChangeAngleZ
(
val
,
new
bool
[]
{
MovementLock
,
KnockbackLock
});
}
public
void
ChangeVelocityXY_noOption
(
Vector2
val
)
{
ChangeVelocityXY
(
val
,
new
bool
[]
{
MovementLock
,
KnockbackLock
});
}
private
void
ChangeAngleZ
(
float
val
,
bool
[]
lockArray
)
{
foreach
(
var
Lock
in
lockArray
)
{
if
(
Lock
)
return
;
}
Vector3
tempAngle
=
transform
.
parent
.
eulerAngles
;
tempAngle
.
z
=
val
;
transform
.
parent
.
eulerAngles
=
tempAngle
;
}
private
void
ChangeVelocityXY
(
Vector2
val
,
bool
[]
lockArray
)
{
foreach
(
var
Lock
in
lockArray
)
{
if
(
Lock
)
return
;
}
Vector3
tempVelocity
=
transform
.
parent
.
gameObject
.
GetComponent
<
Rigidbody2D
>().
velocity
;
tempVelocity
.
x
=
val
.
x
;
tempVelocity
.
y
=
val
.
y
;
transform
.
parent
.
gameObject
.
GetComponent
<
Rigidbody2D
>().
velocity
=
tempVelocity
;
}
}
Assets/Scripts/Characters/Enemy/EnemyAir.cs.meta
0 → 100644
View file @
7b447510
fileFormatVersion: 2
guid: 7ce0adb34b612484eb45a52b7a457aba
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
Assets/Scripts/Characters/Enemy/EnemyGround.cs
0 → 100644
View file @
7b447510
using
System.Collections
;
using
System.Collections.Generic
;
using
UnityEngine
;
using
System
;
public
class
EnemyGround
:
Enemy
{
public
float
attackRange
;
public
int
MoveDir
{
get
;
private
set
;
}
public
bool
[]
WallTest
{
get
;
private
set
;
}
public
bool
[]
CliffTest
{
get
;
private
set
;
}
protected
override
void
Awake
()
{
base
.
Awake
();
WallTest
=
new
bool
[]
{
false
,
false
};
CliffTest
=
new
bool
[]
{
false
,
false
};
}
protected
override
void
Start
()
{
base
.
Start
();
MoveDir
=
(
int
)
NumeratedDir
.
Left
;
}
protected
override
void
FixedUpdate
()
{
base
.
FixedUpdate
();
CheckCliff
();
CheckWall
();
}
// Movement & Physics
// - Check whether enemy is near to cliff
private
void
CheckCliff
()
{
Vector2
velocity
=
transform
.
parent
.
GetComponent
<
Rigidbody2D
>().
velocity
;
Vector2
colliderSize
=
transform
.
parent
.
GetComponent
<
BoxCollider2D
>().
size
;
foreach
(
int
Dir
in
Enum
.
GetValues
(
typeof
(
NumeratedDir
)))
{
Vector2
origin
=
(
Vector2
)
transform
.
parent
.
position
+
Dir
*
new
Vector2
(
colliderSize
.
x
/
2.0f
,
0
);
Vector2
direction
=
Vector2
.
down
;
float
distance
=
colliderSize
.
y
/
4.0f
;
int
layerMask
=
LayerMask
.
NameToLayer
(
"platform"
);
RaycastHit2D
hit
=
Physics2D
.
Raycast
(
origin
,
direction
,
distance
,
layerMask
);
CliffTest
[(
Dir
+
1
)
/
2
]
=
(
hit
.
collider
==
null
);
}
}
// - Check whether enemy is touching wall
private
void
CheckWall
()
{
Vector2
colliderSize
=
transform
.
parent
.
GetComponent
<
BoxCollider2D
>().
size
;
foreach
(
int
Dir
in
Enum
.
GetValues
(
typeof
(
NumeratedDir
)))
{
Vector2
origin
=
(
Vector2
)
transform
.
parent
.
position
+
new
Vector2
(
Dir
*
colliderSize
.
x
/
2.0f
,
colliderSize
.
y
);
Vector2
direction
=
Vector2
.
right
*
Dir
;
float
distance
=
0.5f
;
LayerMask
layerMask
=
LayerMask
.
GetMask
(
"Wall"
,
"OuterWall"
);
RaycastHit2D
hit
=
Physics2D
.
Raycast
(
origin
,
direction
,
distance
,
layerMask
);
WallTest
[(
Dir
+
1
)
/
2
]
=
(
hit
.
collider
!=
null
);
}
}
// - Change direction, and speed of rigidbody of enemy
public
void
ChangeVelocityX_noOption
(
float
val
)
{
ChangeVelocityX
(
val
,
new
bool
[]
{
MovementLock
,
KnockbackLock
});
}
public
void
ChangeDir_noOption
(
object
dir
)
{
ChangeDir
(
dir
,
new
bool
[]
{
MovementLock
,
KnockbackLock
});
}
private
void
ChangeVelocityX
(
float
val
,
bool
[]
lockArray
)
{
foreach
(
var
Lock
in
lockArray
)
{
if
(
Lock
)
return
;
}
Vector2
tempVelocity
=
transform
.
parent
.
GetComponent
<
Rigidbody2D
>().
velocity
;
tempVelocity
.
x
=
val
;
transform
.
parent
.
GetComponent
<
Rigidbody2D
>().
velocity
=
tempVelocity
;
}
private
void
ChangeDir
(
object
dir
,
bool
[]
lockArray
)
{
foreach
(
var
Lock
in
lockArray
)
{
if
(
Lock
)
return
;
}
MoveDir
=
(
int
)
dir
;
transform
.
parent
.
eulerAngles
=
((
NumeratedDir
)
dir
==
NumeratedDir
.
Left
)
?
new
Vector2
(
0
,
0
)
:
new
Vector2
(
0
,
180
);
}
// - Knockback coroutine
protected
override
IEnumerator
Knockback
(
float
knockbackDist
,
float
knockbackTime
)
{
MovementLock
=
true
;
bool
[]
lockArray
=
new
bool
[]
{
false
,
KnockbackLock
};
int
knockbackDir
=
(
enemyManager
.
Player
.
transform
.
position
.
x
-
transform
.
parent
.
position
.
x
>=
0
)
?
-
1
:
1
;
float
knockbackVelocity
=
knockbackDir
*
knockbackDist
/
knockbackTime
;
ChangeDir
(
knockbackDir
*
-
1
,
new
bool
[]
{
MovementLock
,
KnockbackLock
});
ChangeVelocityX
(
knockbackVelocity
,
lockArray
);
for
(
float
timer
=
0
;
timer
<=
knockbackTime
;
timer
+=
Time
.
deltaTime
)
{
if
(
CliffTest
[(
knockbackDir
+
1
)
/
2
])
{
ChangeVelocityX
(
0.0f
,
lockArray
);
yield
return
new
WaitForSeconds
(
knockbackTime
-
timer
);
break
;
}
yield
return
new
WaitForFixedUpdate
();
}
MovementLock
=
false
;
ChangeVelocityX
(
0.0f
,
new
bool
[]
{
MovementLock
,
KnockbackLock
});
}
protected
override
IEnumerator
OnIce
(
float
duration
)
{
ChangeVelocityX
(
0.0f
,
new
bool
[]
{
});
KnockbackLock
=
true
;
animator
.
SetTrigger
(
"StunnedTrigger"
);
animator
.
speed
=
stunnedAnimLength
/
duration
;
yield
return
new
WaitForSeconds
(
duration
);
OffDebuff
(
EnemyDebuffCase
.
Ice
);
}
protected
override
IEnumerator
OnStun
(
float
duration
)
{
ChangeVelocityX
(
0.0f
,
new
bool
[]
{
});
animator
.
SetTrigger
(
"StunnedTrigger"
);
animator
.
speed
=
stunnedAnimLength
/
duration
;
yield
return
new
WaitForSeconds
(
duration
);
OffDebuff
(
EnemyDebuffCase
.
Stun
);
yield
return
null
;
}
}
Assets/Scripts/Characters/Enemy/EnemyGround.cs.meta
0 → 100644
View file @
7b447510
fileFormatVersion: 2
guid: a11d071a77ab21c48882c6c6e4db8f17
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
Assets/Scripts/EnemyManager.cs
View file @
7b447510
...
...
@@ -63,6 +63,24 @@ public class EnemyManager : Singleton<EnemyManager>
}
}
// Spawn Enemy to Map
public
void
SpawnEnemyToMap_forTest
()
{
EnemySpawnCount
=
EnemyDeadCount
=
0
;
Transform
enemySpots
=
GameObject
.
Find
(
"Grid"
).
transform
.
GetChild
(
0
).
GetChild
(
0
).
Find
(
"enemy spot"
);
foreach
(
Transform
enemySpot
in
enemySpots
)
{
if
(!
enemySpot
.
gameObject
.
activeSelf
)
continue
;
GameObject
enemy
=
enemySpot
.
gameObject
.
GetComponent
<
enemySpot
>().
enemyPrefab
;
foreach
(
Transform
location
in
enemySpot
)
{
GameObject
clone
=
PickFromPool
(
enemy
);
clone
.
transform
.
position
=
location
.
position
;
clone
.
transform
.
SetParent
(
MapManager
.
currentRoom
.
roomInGame
.
transform
);
}
}
}
public
bool
IsClear
()
{
return
(
EnemyDeadCount
==
EnemySpawnCount
);
...
...
Assets/Scripts/TetrisMap/Test.cs
View file @
7b447510
...
...
@@ -53,7 +53,7 @@ public class Test : MonoBehaviour {
}
public
void
SummonEnemy
()
{
EnemyManager
.
Instance
.
SpawnEnemyToMap
();
EnemyManager
.
Instance
.
SpawnEnemyToMap
_forTest
();
}
...
...
Assets/Sprites/Enemy/Spider.meta
0 → 100644
View file @
7b447510
fileFormatVersion: 2
guid: 5af1a51130e303a48943d280fdd8524b
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Assets/Sprites/Enemy/Spider/evil_spider.png
0 → 100644
View file @
7b447510
1.55 KB
Assets/Sprites/
evil_scorpion1
.png.meta
→
Assets/Sprites/
Enemy/Spider/evil_spider
.png.meta
View file @
7b447510
fileFormatVersion: 2
guid:
9588a72c7c886de4a999bf6cc7948b8
4
guid:
3f4a1ae9be64d9f46b0fd7fbffeb58a
4
TextureImporter:
fileIDToRecycleName: {}
externalObjects: {}
...
...
@@ -31,7 +31,7 @@ TextureImporter:
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode:
-1
filterMode:
0
aniso: -1
mipBias: -100
wrapU: 1
...
...
@@ -45,7 +45,7 @@ TextureImporter:
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits:
100
spritePixelsToUnits:
64
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
...
...
@@ -63,7 +63,7 @@ TextureImporter:
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression:
1
textureCompression:
0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
...
...
@@ -74,18 +74,7 @@ TextureImporter:
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- serializedVersion: 2
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
...
...
@@ -97,7 +86,7 @@ TextureImporter:
outline: []
physicsShape: []
bones: []
spriteID:
a056a27b5da67434cbddf45ee2e1113d
spriteID:
255038a448d1a6843905bb243e0d08bf
vertices: []
indices:
edges: []
...
...
Assets/Sprites/evil_scorpion1.png
deleted
100644 → 0
View file @
aa6e6da0
20 KB
Assets/Sprites/evil_scorpion2.png
deleted
100644 → 0
View file @
aa6e6da0
23.6 KB
Assets/Sprites/evil_scorpion2.png.meta
deleted
100644 → 0
View file @
aa6e6da0
fileFormatVersion: 2
guid: a6edaaede1a4aea42a1e9fea0eec397e
TextureImporter:
fileIDToRecycleName: {}
externalObjects: {}
serializedVersion: 6
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -100
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- serializedVersion: 2
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- serializedVersion: 2
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- serializedVersion: 2
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 381f3859d4182af4fa7972b8e6404c51
vertices: []
indices:
edges: []
weights: []
spritePackingTag: 12
userData:
assetBundleName:
assetBundleVariant:
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