Commit 42f9dffa authored by 18손재민's avatar 18손재민

Merge remote-tracking branch 'origin/enemy'

# Conflicts:
#	Assets/Scripts/Characters/Enemy/Enemy.cs
parents 5a99a028 e7a1ad84
%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: IdleTrigger
m_Type: 9
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 0}
- 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_ConditionMode: 1
m_ConditionEvent: DeadTrigger
m_EventTreshold: 0
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_ConditionMode: 1
m_ConditionEvent: IdleTrigger
m_EventTreshold: 0
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: 0
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_ConditionMode: 1
m_ConditionEvent: DisableStunTrigger
m_EventTreshold: 0
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_ConditionMode: 1
m_ConditionEvent: DamagedTrigger
m_EventTreshold: 0
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_ConditionMode: 1
m_ConditionEvent: TrackTrigger
m_EventTreshold: 0
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: 0
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_ConditionMode: 1
m_ConditionEvent: StunnedTrigger
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 1102983908728061620}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0
m_TransitionOffset: 0
m_ExitTime: 0
m_HasExitTime: 0
m_HasFixedDuration: 0
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: a18ed8217cce17348a342f01a47efb4f, 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: -12, y: 360, z: 0}
- serializedVersion: 1
m_State: {fileID: 1102308230915380642}
m_Position: {x: 324, y: 468, z: 0}
- serializedVersion: 1
m_State: {fileID: 1102983908728061620}
m_Position: {x: 216, 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}
fileFormatVersion: 2
guid: c8563e7de963bcc4a90cafd485471e9b
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:
......@@ -163,7 +163,7 @@ AnimationClip:
m_GenerateMotionCurves: 0
m_Events:
- time: 0
functionName: ChangeVelocityX
functionName: ChangeVelocityX_noOption
data:
objectReferenceParameter: {fileID: 0}
floatParameter: 0
......
......@@ -109,7 +109,7 @@ AnimationClip:
m_GenerateMotionCurves: 0
m_Events:
- time: 0
functionName: ChangeVelocityX
functionName: ChangeVelocityX_noOption
data:
objectReferenceParameter: {fileID: 0}
floatParameter: 0
......
......@@ -5,7 +5,7 @@ AnimatorController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: melee
m_Name: GroundMelee
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
......
fileFormatVersion: 2
guid: 3277ff2aa5f84f945815b90b5dc1295c
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
%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 Dead
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}
- time: 0.16666667
value: {fileID: 21300000, guid: 3f4a1ae9be64d9f46b0fd7fbffeb58a4, type: 3}
- time: 0.33333334
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}
- {fileID: 21300000, guid: 3f4a1ae9be64d9f46b0fd7fbffeb58a4, type: 3}
- {fileID: 21300000, guid: 3f4a1ae9be64d9f46b0fd7fbffeb58a4, type: 3}
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0.35000002
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves: []
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_GenerateMotionCurves: 0
m_Events:
- time: 0
functionName: ChangeVelocityXY_zero
data:
objectReferenceParameter: {fileID: 0}
floatParameter: 0
intParameter: 0
messageOptions: 0
- time: 0.33333334
functionName: DeadEvent
data:
objectReferenceParameter: {fileID: 0}
floatParameter: 0
intParameter: 0
messageOptions: 0
fileFormatVersion: 2
guid: a18ed8217cce17348a342f01a47efb4f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:
%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: []
fileFormatVersion: 2
guid: e38ac228fc296204b80018c3350e6b3d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:
스테이지,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
고대유적,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,
......
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EnemyPhysics : MonoBehaviour {
}
......@@ -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
......@@ -323,6 +323,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
damage: 4
damageOnce: 1
--- !u!114 &114851997656688694
MonoBehaviour:
m_ObjectHideFlags: 1
......@@ -373,7 +374,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}
......
......@@ -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: 0
--- !u!1 &1822069857481414
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 &1923610854882692
--- !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: 4804976410232030}
m_Father: {fileID: 4001151502382822}
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.8663561, 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 &50615514765813310
--- !u!50 &50573848117970958
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 &95600343560029758
--- !u!95 &95156341909549574
Animator:
serializedVersion: 3
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1346522711063220}
m_GameObject: {fileID: 1860030746010208}
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
......@@ -175,33 +234,51 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
damage: 0
--- !u!114 &114425347246421446
isBumpAttack: 1
--- !u!114 &114337624805266014
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
MovementLock: 0
--- !u!212 &212993065858080250
SpriteRenderer:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1346522711063220}
m_GameObject: {fileID: 1860030746010208}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
......@@ -228,17 +305,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: 9588a72c7c886de4a999bf6cc7948b84, type: 3}
m_Sprite: {fileID: 21300000, guid: 3f4a1ae9be64d9f46b0fd7fbffeb58a4, 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
......@@ -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
......@@ -52,6 +52,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
isTutorial: 0
player: {fileID: 0}
minimap: {fileID: 0}
gameOverCanvas: {fileID: 223237664237935382, guid: 692aad2449e06054799ea4706578fb23,
type: 2}
......@@ -59,3 +60,4 @@ MonoBehaviour:
type: 2}
textCanvas: {fileID: 223566371550133596, guid: 51286afce3c9c8a4bae74feddf8b13af,
type: 2}
clock: {fileID: 0}
......@@ -152,16 +152,6 @@ Prefab:
propertyPath: m_RootOrder
value: 2
objectReference: {fileID: 0}
- target: {fileID: 114561382838090706, guid: f6ef1c586e7764c41ba8349325635589,
type: 2}
propertyPath: gameOverCanvas
value:
objectReference: {fileID: 647962947}
- target: {fileID: 114561382838090706, guid: f6ef1c586e7764c41ba8349325635589,
type: 2}
propertyPath: inventoryCanvas
value:
objectReference: {fileID: 173423968}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: f6ef1c586e7764c41ba8349325635589, type: 2}
m_IsPrefabAsset: 0
......@@ -265,11 +255,6 @@ Prefab:
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 51507e73c8b2b094e8299991dfe7fe46, type: 2}
m_IsPrefabAsset: 0
--- !u!223 &173423968 stripped
Canvas:
m_CorrespondingSourceObject: {fileID: 223008133952041092, guid: 7c6db9a9ca4150a438bd5114c58a37cf,
type: 2}
m_PrefabInternal: {fileID: 1337079440}
--- !u!1001 &179350392
Prefab:
m_ObjectHideFlags: 0
......@@ -379,126 +364,6 @@ RectTransform:
m_CorrespondingSourceObject: {fileID: 224174390332342308, guid: 378c41c0af7d4db41895ec01e1f50291,
type: 2}
m_PrefabInternal: {fileID: 179350392}
--- !u!114 &342983528 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 114561382838090706, guid: f6ef1c586e7764c41ba8349325635589,
type: 2}
m_PrefabInternal: {fileID: 50055403}
m_Script: {fileID: 11500000, guid: 97912f0a2214a8a4f8023ed30629bb30, type: 3}
--- !u!1001 &467942570
Prefab:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 224393982547383572, guid: 692aad2449e06054799ea4706578fb23,
type: 2}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224393982547383572, guid: 692aad2449e06054799ea4706578fb23,
type: 2}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224393982547383572, guid: 692aad2449e06054799ea4706578fb23,
type: 2}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224393982547383572, guid: 692aad2449e06054799ea4706578fb23,
type: 2}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224393982547383572, guid: 692aad2449e06054799ea4706578fb23,
type: 2}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224393982547383572, guid: 692aad2449e06054799ea4706578fb23,
type: 2}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224393982547383572, guid: 692aad2449e06054799ea4706578fb23,
type: 2}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 224393982547383572, guid: 692aad2449e06054799ea4706578fb23,
type: 2}
propertyPath: m_RootOrder
value: 12
objectReference: {fileID: 0}
- target: {fileID: 224393982547383572, guid: 692aad2449e06054799ea4706578fb23,
type: 2}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224393982547383572, guid: 692aad2449e06054799ea4706578fb23,
type: 2}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224393982547383572, guid: 692aad2449e06054799ea4706578fb23,
type: 2}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224393982547383572, guid: 692aad2449e06054799ea4706578fb23,
type: 2}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224393982547383572, guid: 692aad2449e06054799ea4706578fb23,
type: 2}
propertyPath: m_AnchorMin.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224393982547383572, guid: 692aad2449e06054799ea4706578fb23,
type: 2}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224393982547383572, guid: 692aad2449e06054799ea4706578fb23,
type: 2}
propertyPath: m_AnchorMax.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224393982547383572, guid: 692aad2449e06054799ea4706578fb23,
type: 2}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224393982547383572, guid: 692aad2449e06054799ea4706578fb23,
type: 2}
propertyPath: m_Pivot.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224393982547383572, guid: 692aad2449e06054799ea4706578fb23,
type: 2}
propertyPath: m_Pivot.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1742875678731534, guid: 692aad2449e06054799ea4706578fb23, type: 2}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 114630214332230992, guid: 692aad2449e06054799ea4706578fb23,
type: 2}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target
value:
objectReference: {fileID: 342983528}
- target: {fileID: 114630214332230992, guid: 692aad2449e06054799ea4706578fb23,
type: 2}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
value: RestartGame
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 692aad2449e06054799ea4706578fb23, type: 2}
m_IsPrefabAsset: 0
--- !u!1 &489222433 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 1623439448163086, guid: 3d077a5f727dd1e4780e9265ed26e036,
......@@ -541,7 +406,7 @@ Prefab:
objectReference: {fileID: 0}
- target: {fileID: 4281661761445894, guid: 7fec52078de87f74abe791494596a804, type: 2}
propertyPath: m_RootOrder
value: 15
value: 13
objectReference: {fileID: 0}
- target: {fileID: 114772635349595938, guid: 7fec52078de87f74abe791494596a804,
type: 2}
......@@ -561,11 +426,6 @@ Prefab:
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 7fec52078de87f74abe791494596a804, type: 2}
m_IsPrefabAsset: 0
--- !u!223 &647962947 stripped
Canvas:
m_CorrespondingSourceObject: {fileID: 223237664237935382, guid: 692aad2449e06054799ea4706578fb23,
type: 2}
m_PrefabInternal: {fileID: 467942570}
--- !u!1001 &650104063
Prefab:
m_ObjectHideFlags: 0
......@@ -732,11 +592,6 @@ GameObject:
m_CorrespondingSourceObject: {fileID: 1874721051176178, guid: c179f0931cfabec428a868a6edc543b0,
type: 2}
m_PrefabInternal: {fileID: 1711972807}
--- !u!4 &932337239 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 4180646400299094, guid: f6834170b7152ee4db0dc7e165dcca70,
type: 2}
m_PrefabInternal: {fileID: 2120518040}
--- !u!1001 &1001020222
Prefab:
m_ObjectHideFlags: 0
......@@ -774,7 +629,7 @@ Prefab:
objectReference: {fileID: 0}
- target: {fileID: 4884929250924374, guid: e6794ab8e2e4c6340a23b382e9497cbb, type: 2}
propertyPath: m_RootOrder
value: 13
value: 11
objectReference: {fileID: 0}
- target: {fileID: 114287389059791124, guid: e6794ab8e2e4c6340a23b382e9497cbb,
type: 2}
......@@ -878,7 +733,6 @@ Transform:
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 932337239}
- {fileID: 1047338944}
m_Father: {fileID: 0}
m_RootOrder: 4
......@@ -931,110 +785,6 @@ Prefab:
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 668207ef06c134e40b24375977c2c930, type: 2}
m_IsPrefabAsset: 0
--- !u!1001 &1337079440
Prefab:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 224158395360498114, guid: 7c6db9a9ca4150a438bd5114c58a37cf,
type: 2}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224158395360498114, guid: 7c6db9a9ca4150a438bd5114c58a37cf,
type: 2}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224158395360498114, guid: 7c6db9a9ca4150a438bd5114c58a37cf,
type: 2}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224158395360498114, guid: 7c6db9a9ca4150a438bd5114c58a37cf,
type: 2}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224158395360498114, guid: 7c6db9a9ca4150a438bd5114c58a37cf,
type: 2}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224158395360498114, guid: 7c6db9a9ca4150a438bd5114c58a37cf,
type: 2}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224158395360498114, guid: 7c6db9a9ca4150a438bd5114c58a37cf,
type: 2}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 224158395360498114, guid: 7c6db9a9ca4150a438bd5114c58a37cf,
type: 2}
propertyPath: m_RootOrder
value: 11
objectReference: {fileID: 0}
- target: {fileID: 224158395360498114, guid: 7c6db9a9ca4150a438bd5114c58a37cf,
type: 2}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224158395360498114, guid: 7c6db9a9ca4150a438bd5114c58a37cf,
type: 2}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224158395360498114, guid: 7c6db9a9ca4150a438bd5114c58a37cf,
type: 2}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224158395360498114, guid: 7c6db9a9ca4150a438bd5114c58a37cf,
type: 2}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224158395360498114, guid: 7c6db9a9ca4150a438bd5114c58a37cf,
type: 2}
propertyPath: m_AnchorMin.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224158395360498114, guid: 7c6db9a9ca4150a438bd5114c58a37cf,
type: 2}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224158395360498114, guid: 7c6db9a9ca4150a438bd5114c58a37cf,
type: 2}
propertyPath: m_AnchorMax.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224158395360498114, guid: 7c6db9a9ca4150a438bd5114c58a37cf,
type: 2}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224158395360498114, guid: 7c6db9a9ca4150a438bd5114c58a37cf,
type: 2}
propertyPath: m_Pivot.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224158395360498114, guid: 7c6db9a9ca4150a438bd5114c58a37cf,
type: 2}
propertyPath: m_Pivot.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1560605499280558, guid: 7c6db9a9ca4150a438bd5114c58a37cf, type: 2}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 7c6db9a9ca4150a438bd5114c58a37cf, type: 2}
m_IsPrefabAsset: 0
--- !u!1001 &1501015121
Prefab:
m_ObjectHideFlags: 0
......@@ -1072,7 +822,7 @@ Prefab:
objectReference: {fileID: 0}
- target: {fileID: 4958682140800270, guid: 95422f3c251e3824daa82317630a81d7, type: 2}
propertyPath: m_RootOrder
value: 14
value: 12
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 95422f3c251e3824daa82317630a81d7, type: 2}
......@@ -1255,7 +1005,7 @@ Prefab:
objectReference: {fileID: 0}
- target: {fileID: 4542814694995438, guid: 29d5569197813594db51adf0d061bc36, type: 2}
propertyPath: m_RootOrder
value: 3
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8195094281470038606, guid: 29d5569197813594db51adf0d061bc36,
type: 2}
......@@ -1851,59 +1601,3 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0}
--- !u!1001 &2120518040
Prefab:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 1244139631}
m_Modifications:
- target: {fileID: 66423678504979326, guid: f6834170b7152ee4db0dc7e165dcca70,
type: 2}
propertyPath: m_ColliderPaths.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 66756967381453834, guid: f6834170b7152ee4db0dc7e165dcca70,
type: 2}
propertyPath: m_ColliderPaths.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4180646400299094, guid: f6834170b7152ee4db0dc7e165dcca70, type: 2}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4180646400299094, guid: f6834170b7152ee4db0dc7e165dcca70, type: 2}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4180646400299094, guid: f6834170b7152ee4db0dc7e165dcca70, type: 2}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4180646400299094, guid: f6834170b7152ee4db0dc7e165dcca70, type: 2}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4180646400299094, guid: f6834170b7152ee4db0dc7e165dcca70, type: 2}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4180646400299094, guid: f6834170b7152ee4db0dc7e165dcca70, type: 2}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4180646400299094, guid: f6834170b7152ee4db0dc7e165dcca70, type: 2}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4180646400299094, guid: f6834170b7152ee4db0dc7e165dcca70, type: 2}
propertyPath: m_RootOrder
value: 2
objectReference: {fileID: 0}
- target: {fileID: 1934928217517870, guid: f6834170b7152ee4db0dc7e165dcca70, type: 2}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: f6834170b7152ee4db0dc7e165dcca70, type: 2}
m_IsPrefabAsset: 0
This source diff could not be displayed because it is too large. You can view the blob instead.
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.ResetTrigger("IdleTrigger");
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) {
//
//}
}
fileFormatVersion: 2
guid: 026903d6f2ef73c4b8c30d71a7b40081
guid: 11413b136ebb3b54d9ad632cc4ef4d60
MonoImporter:
externalObjects: {}
serializedVersion: 2
......
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EnemyAirTrack : StateMachineBehaviour {
float trackSpeed;
float trackRange;
float angle;
GameObject player;
Transform animatorRoot;
EnemyAir enemy;
Vector2 direction;
int maxFrame = 10;
int frameCount;
// 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;
frameCount = 0;
SetDirection();
}
// 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 > enemy.noticeRange)
{
animator.ResetTrigger("TrackTrigger");
animator.SetTrigger("IdleTrigger");
enemy.ChangeVelocityXY_noOption(Vector2.zero);
return;
}
SetDirection();
Vector2 vel = direction.normalized * 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;
angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg;
enemy.ChangeAngleZ_noOption(angle - 90.0f);
}
}
fileFormatVersion: 2
guid: b24234f0901ca8344922d2c140a48dd2
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
......@@ -8,25 +8,25 @@ public class EnemyMeleeIdle : StateMachineBehaviour {
float noticeRange;
Vector2 origin;
Transform animatorRoot;
Enemy enemy;
EnemyGround 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<EnemyGround>();
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
override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) {
if (enemy.PlayerDistance < noticeRange)
if (enemy.PlayerDistance < noticeRange)
{
animator.SetTrigger("TrackTrigger");
return;
......@@ -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);
}
}
}
......
......@@ -7,7 +7,7 @@ public class EnemyMeleeTrack : StateMachineBehaviour {
float attackRange;
GameObject player;
Transform animatorRoot;
Enemy enemy;
EnemyGround 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<EnemyGround>();
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;
}
}
......
......@@ -4,13 +4,33 @@ using UnityEngine;
public class DamageToPlayer : MonoBehaviour {
public int damage;
public bool isBumpAttack;
// enum debuff
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.CompareTag("Player"))
if (collision.CompareTag("Player") && !isBumpAttack)
{
EnemyAttackInfo attack = new EnemyAttackInfo(damage, 1f, 0, null, null);
collision.gameObject.GetComponent<PlayerAttack>().TakeDamage(attack);
}
}
private void OnTriggerStay2D(Collider2D collision)
{
if (collision.CompareTag("Player") && isBumpAttack && transform.parent.gameObject.GetComponent<Enemy>().bumpable)
{
EnemyAttackInfo attack = new EnemyAttackInfo(damage, 1f, 0, null, null);
collision.gameObject.GetComponent<PlayerAttack>().TakeDamage(attack);
transform.parent.gameObject.GetComponent<EnemyAir>().bumped = true;
transform.parent.gameObject.GetComponent<EnemyAir>().bumpable = false;
}
}
private void OnTriggerExit2D(Collider2D collision)
{
if (collision.CompareTag("Player") && isBumpAttack)
{
transform.parent.gameObject.GetComponent<Enemy>().bumped = false;
}
}
}
......@@ -3,14 +3,19 @@ using System.Collections;
using UnityEngine;
using Random = UnityEngine.Random;
public class Enemy : MonoBehaviour {
public abstract class Enemy : MonoBehaviour {
// data
// debuff
readonly float[] immunity_time = new float[(int)EnemyDebuffCase.END_POINTER] { 0.0f, 3.0f, 6.0f, 6.0f, 6.0f };
[SerializeField]
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 +23,63 @@ 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; private set; }
public float currHealth { get; protected set; }
// manager
private InventoryManager inventoryManager;
private LifeStoneManager lifeStoneManager;
private EnemyManager enemyManager;
protected InventoryManager inventoryManager;
protected LifeStoneManager lifeStoneManager;
protected 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 MovementLock;
public bool Invisible { 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
// for bumping attack
public bool bumped = false;
public bool bumpable = true;
// method
// Standard method
private void Awake()
protected 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")) { damagedAnimLength = clip.length; } }
foreach (var clip in clips) { if (clip.name.Contains("Stunned")) { stunnedAnimLength = clip.length; } }
Array.Sort(knockbackPercentage);
Array.Reverse(knockbackPercentage);
}
private void Start()
{
MoveDir = (int)NumeratedDir.Left;
protected virtual void Start()
{
currHealth = maxHealth;
Invisible = MovementLock = false;
Invisible = MovementLock = KnockbackLock = false;
dropTable = enemyManager.DropTableByID[monsterID];
PlayerDistance = Vector2.Distance(enemyManager.Player.transform.position, transform.parent.position);
}
private void FixedUpdate()
protected 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
......@@ -179,8 +93,6 @@ public class Enemy : MonoBehaviour {
{
Invisible = true;
animator.SetTrigger("DeadTrigger");
StopCoroutine("OnFire");
GetComponent<SpriteRenderer>().color = Color.white;
return;
}
......@@ -212,6 +124,7 @@ public class Enemy : MonoBehaviour {
public void GetDamaged(float damage)
{
float prevHealth = currHealth;
currHealth -= damage;
if (currHealth <= 0)
{
......@@ -219,10 +132,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
private void DebuffApply(float[] debuffTime)
protected void DebuffApply(float[] debuffTime)
{
if(debuffState[(int)EnemyDebuffCase.Ice] == DebuffState.On){
OffDebuff(EnemyDebuffCase.Ice);
......@@ -256,10 +182,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;
......@@ -272,55 +198,17 @@ public class Enemy : MonoBehaviour {
{
fireDuration = duration;
float dotGap = 1.0f;
while (true)
while(true)
{
for(float timer = 0; timer < dotGap; timer += Time.deltaTime)
{
GetComponent<SpriteRenderer>().color = new Color(1f, 0.5f + 0.5f * timer / dotGap, 0.5f + 0.5f * timer / dotGap);
yield return null;
}
yield return new WaitForSeconds(dotGap);
fireDuration -= dotGap;
if (fireDuration < 0.0f) {
fireDuration = 0.0f;
break;
}
GetDamaged(lifeStoneManager.lifeStoneRowNum * 0.3f);
EffectManager.Instance.StartNumber(0, gameObject.transform.parent.position, lifeStoneManager.lifeStoneRowNum * 0.3f);
}
debuffState[(int)EnemyDebuffCase.Fire] = DebuffState.Off;
GetComponent<SpriteRenderer>().color = Color.white;
}
IEnumerator OnIce(float duration)
{
GetComponent<SpriteRenderer>().color = new Color(0.5f,0.5f,1f);
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)
......@@ -330,14 +218,13 @@ public class Enemy : MonoBehaviour {
debuffState[(int)Case] = DebuffState.Off;
}
private void OffDebuff(EnemyDebuffCase Case)
protected void OffDebuff(EnemyDebuffCase Case)
{
StartCoroutine(ImmuneTimer(Case, immunity_time[(int)Case]));
switch (Case)
{
case EnemyDebuffCase.Ice:
StopCoroutine("OnIce");
GetComponent<SpriteRenderer>().color = Color.white;
KnockbackLock = false;
animator.speed = 1.0f;
animator.SetTrigger("DisableStunTrigger");
......
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EnemyAir : Enemy {
protected override void Start()
{
base.Start();
StartCoroutine(BumpCheck());
}
protected override void FixedUpdate()
{
base.FixedUpdate();
if (bumpable)
{
MovementLock = false;
}
else
{
ChangeVelocityXY_zero();
MovementLock = true;
}
}
public void ChangeAngleZ_noOption(float val)
{
ChangeAngleZ(val, new bool[] { MovementLock, KnockbackLock });
}
public void ChangeVelocityXY_zero() // 망할 유니티 애니메이션 이벤트 Vec2를 parameter로 받는 함수를 못집어넣음
{
ChangeVelocityXY(Vector2.zero, 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;
}
protected override IEnumerator OnIce(float duration)
{
ChangeVelocityXY(Vector2.zero, 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)
{
ChangeVelocityXY(Vector2.zero, new bool[] { });
animator.SetTrigger("StunnedTrigger");
animator.speed = stunnedAnimLength / duration;
yield return new WaitForSeconds(duration);
OffDebuff(EnemyDebuffCase.Stun);
yield return null;
}
// - Knockback coroutine
protected override IEnumerator Knockback(float knockbackDist, float knockbackTime)
{
MovementLock = true;
bool[] lockArray = new bool[] { false, KnockbackLock };
Vector2 knockbackDir = (transform.parent.position - enemyManager.Player.transform.position).normalized;
Vector2 knockbackVelocity = (knockbackDist / knockbackTime) * knockbackDir;
ChangeAngleZ(Mathf.Atan2(knockbackDir.y, knockbackDir.x) * -1, new bool[] { MovementLock, KnockbackLock });
ChangeVelocityXY(knockbackVelocity, lockArray);
yield return new WaitForSeconds(knockbackTime);
MovementLock = false;
ChangeVelocityXY(Vector2.zero, new bool[] { MovementLock, KnockbackLock });
}
IEnumerator BumpCheck()
{
while (true)
{
if (!bumpable) { bumpable = true; }
yield return new WaitForSeconds(1.0f);
}
}
}
fileFormatVersion: 2
guid: 7ce0adb34b612484eb45a52b7a457aba
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
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;
}
}
fileFormatVersion: 2
guid: a11d071a77ab21c48882c6c6e4db8f17
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
......@@ -262,13 +262,50 @@ public class PlayerController : MonoBehaviour
bool GetItemRay()
{
RaycastHit2D hit = Physics2D.Raycast(transform.position , Vector2.down, rayDistance, itemLayer);
RaycastHit2D[] hits;
hits = Physics2D.BoxCastAll(transform.position, new Vector2(Player.X, boxHeight), 0, Vector2.down, Player.Y / 2f, itemLayer);
if (hits.Length > 0) //if no object was found there is no minimum
if (hit.collider != null)
{
IPlayerInteraction temp = hit.collider.GetComponent<IPlayerInteraction>();
float min = hits[0].distance; //lets assume that the minimum is at the 0th place
int minIndex = 0; //store the index of the minimum because thats hoow we can find our object
for (int i = 1; i < hits.Length; ++i)// iterate from the 1st element to the last.(Note that we ignore the 0th element)
{
if (hits[i].transform != gameObject.transform && hits[i].distance < min) //if we found smaller distance and its not the player we got a new minimum
{
min = hits[i].distance; //refresh the minimum distance value
minIndex = i; //refresh the distance
}
}
IPlayerInteraction temp = hits[minIndex].collider.GetComponent<IPlayerInteraction>();
if (lastDropItem != null) lastDropItem.HighlightSwitch(false);
if (temp != null) temp.HighlightSwitch(true);
lastDropItem = temp;
}
else
{
......@@ -283,7 +320,7 @@ public class PlayerController : MonoBehaviour
}
}
return hit.collider != null;
return hit.collider != null || hits.Length>0;
}
bool IsInRope() // Is player in rope?
{
......
......@@ -66,6 +66,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);
......
......@@ -57,7 +57,7 @@ public class Test : MonoBehaviour {
}
public void SummonEnemy()
{
EnemyManager.Instance.SpawnEnemyToMap();
EnemyManager.Instance.SpawnEnemyToMap_forTest();
}
......
fileFormatVersion: 2
guid: 5af1a51130e303a48943d280fdd8524b
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 9588a72c7c886de4a999bf6cc7948b84
guid: 3f4a1ae9be64d9f46b0fd7fbffeb58a4
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: []
......
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:
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment