Added State Management code
Added AI code for enemies utilizing State Management Created simple enemy prefab with the AI
This commit is contained in:
parent
ed5dffacb1
commit
719c1d0ba0
BIN
Assets/Audio/SomeBG.wav
Normal file
BIN
Assets/Audio/SomeBG.wav
Normal file
Binary file not shown.
23
Assets/Audio/SomeBG.wav.meta
Normal file
23
Assets/Audio/SomeBG.wav.meta
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 27d0c23f9589e6044b0831b1fb3c4678
|
||||||
|
AudioImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 8
|
||||||
|
defaultSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
loadType: 0
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 44100
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 1
|
||||||
|
conversionMode: 0
|
||||||
|
preloadAudioData: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
normalize: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
ambisonic: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -29,7 +29,7 @@ Transform:
|
|||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
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_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 0.75, y: 0.75, z: 1}
|
||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 243343966221896818}
|
m_Father: {fileID: 243343966221896818}
|
||||||
@ -75,8 +75,8 @@ SpriteRenderer:
|
|||||||
m_AutoUVMaxDistance: 0.5
|
m_AutoUVMaxDistance: 0.5
|
||||||
m_AutoUVMaxAngle: 89
|
m_AutoUVMaxAngle: 89
|
||||||
m_LightmapParameters: {fileID: 0}
|
m_LightmapParameters: {fileID: 0}
|
||||||
m_SortingLayerID: 0
|
m_SortingLayerID: 651355007
|
||||||
m_SortingLayer: 0
|
m_SortingLayer: 4
|
||||||
m_SortingOrder: 0
|
m_SortingOrder: 0
|
||||||
m_Sprite: {fileID: -9095717837082945937, guid: 207ee8102dd4143d288186ef0be518ee, type: 3}
|
m_Sprite: {fileID: -9095717837082945937, guid: 207ee8102dd4143d288186ef0be518ee, type: 3}
|
||||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
@ -123,9 +123,9 @@ CapsuleCollider2D:
|
|||||||
m_UsedByEffector: 0
|
m_UsedByEffector: 0
|
||||||
m_CompositeOperation: 0
|
m_CompositeOperation: 0
|
||||||
m_CompositeOrder: 0
|
m_CompositeOrder: 0
|
||||||
m_Offset: {x: 0, y: 0}
|
m_Offset: {x: 0.0000014055772, y: -0.87583154}
|
||||||
m_Size: {x: 1, y: 2}
|
m_Size: {x: 0.7845726, y: 0.36333472}
|
||||||
m_Direction: 0
|
m_Direction: 1
|
||||||
--- !u!50 &3688493226208381882
|
--- !u!50 &3688493226208381882
|
||||||
Rigidbody2D:
|
Rigidbody2D:
|
||||||
serializedVersion: 5
|
serializedVersion: 5
|
||||||
@ -141,15 +141,15 @@ Rigidbody2D:
|
|||||||
m_Mass: 1
|
m_Mass: 1
|
||||||
m_LinearDamping: 0
|
m_LinearDamping: 0
|
||||||
m_AngularDamping: 0.05
|
m_AngularDamping: 0.05
|
||||||
m_GravityScale: 1
|
m_GravityScale: 0
|
||||||
m_Material: {fileID: 0}
|
m_Material: {fileID: 0}
|
||||||
m_IncludeLayers:
|
m_IncludeLayers:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_Bits: 0
|
m_Bits: 0
|
||||||
m_ExcludeLayers:
|
m_ExcludeLayers:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_Bits: 0
|
m_Bits: 4294967295
|
||||||
m_Interpolate: 0
|
m_Interpolate: 1
|
||||||
m_SleepingMode: 1
|
m_SleepingMode: 1
|
||||||
m_CollisionDetection: 0
|
m_CollisionDetection: 0
|
||||||
m_Constraints: 0
|
m_Constraints: 0
|
||||||
@ -162,6 +162,7 @@ GameObject:
|
|||||||
serializedVersion: 6
|
serializedVersion: 6
|
||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 243343966221896818}
|
- component: {fileID: 243343966221896818}
|
||||||
|
- component: {fileID: 4923938647755769837}
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
m_Name: Gobler
|
m_Name: Gobler
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@ -185,3 +186,20 @@ Transform:
|
|||||||
- {fileID: 2045680922754072471}
|
- {fileID: 2045680922754072471}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!114 &4923938647755769837
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6411951171763069002}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: a5c89455bac58d943a2e1e110d37a24d, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
WalkState: {fileID: 11400000, guid: 5cd5bb6e94e95cf4c961f0433390f59f, type: 2}
|
||||||
|
ChaseState: {fileID: 11400000, guid: 71a5afe255167e14cad7bb413bdef532, type: 2}
|
||||||
|
AttackState: {fileID: 11400000, guid: 0b9cc3e63ee0125479639c05b89977f8, type: 2}
|
||||||
|
ChaseDistance: 10
|
||||||
|
AttackDistance: 1
|
||||||
|
|||||||
@ -194,7 +194,7 @@ Transform:
|
|||||||
m_GameObject: {fileID: 308205144}
|
m_GameObject: {fileID: 308205144}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
m_LocalPosition: {x: -3.4414895, y: -0.9161943, z: -20.03828}
|
m_LocalPosition: {x: -3.4414895, y: -0.4461943, z: -20.03828}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children: []
|
m_Children: []
|
||||||
@ -306,7 +306,7 @@ Transform:
|
|||||||
m_GameObject: {fileID: 519420028}
|
m_GameObject: {fileID: 519420028}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
m_LocalPosition: {x: -3.4414895, y: -0.9161943, z: -20.03828}
|
m_LocalPosition: {x: -3.4414895, y: -0.4461943, z: -20.03828}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children: []
|
m_Children: []
|
||||||
@ -65434,6 +65434,7 @@ GameObject:
|
|||||||
serializedVersion: 6
|
serializedVersion: 6
|
||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 1990193559}
|
- component: {fileID: 1990193559}
|
||||||
|
- component: {fileID: 1990193560}
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
m_Name: World
|
m_Name: World
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@ -65457,85 +65458,103 @@ Transform:
|
|||||||
- {fileID: 1113405404}
|
- {fileID: 1113405404}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &2108843205
|
--- !u!82 &1990193560
|
||||||
GameObject:
|
AudioSource:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
serializedVersion: 6
|
m_GameObject: {fileID: 1990193558}
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 2108843208}
|
|
||||||
- component: {fileID: 2108843207}
|
|
||||||
- component: {fileID: 2108843206}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: EventSystem
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!114 &2108843206
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 2108843205}
|
|
||||||
m_Enabled: 1
|
m_Enabled: 1
|
||||||
m_EditorHideFlags: 0
|
serializedVersion: 4
|
||||||
m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3}
|
OutputAudioMixerGroup: {fileID: 0}
|
||||||
m_Name:
|
m_audioClip: {fileID: 8300000, guid: 27d0c23f9589e6044b0831b1fb3c4678, type: 3}
|
||||||
m_EditorClassIdentifier:
|
m_Resource: {fileID: 8300000, guid: 27d0c23f9589e6044b0831b1fb3c4678, type: 3}
|
||||||
m_SendPointerHoverToParent: 1
|
m_PlayOnAwake: 1
|
||||||
m_MoveRepeatDelay: 0.5
|
m_Volume: 1
|
||||||
m_MoveRepeatRate: 0.1
|
m_Pitch: 1
|
||||||
m_XRTrackingOrigin: {fileID: 0}
|
Loop: 1
|
||||||
m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
Mute: 0
|
||||||
m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
Spatialize: 0
|
||||||
m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
SpatializePostEffects: 0
|
||||||
m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
Priority: 24
|
||||||
m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
DopplerLevel: 1
|
||||||
m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
MinDistance: 1
|
||||||
m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
MaxDistance: 500
|
||||||
m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
Pan2D: 0
|
||||||
m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
rolloffMode: 0
|
||||||
m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
BypassEffects: 0
|
||||||
m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
BypassListenerEffects: 0
|
||||||
m_DeselectOnBackgroundClick: 1
|
BypassReverbZones: 0
|
||||||
m_PointerBehavior: 0
|
rolloffCustomCurve:
|
||||||
m_CursorLockBehavior: 0
|
|
||||||
m_ScrollDeltaPerTick: 6
|
|
||||||
--- !u!114 &2108843207
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 2108843205}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
m_FirstSelected: {fileID: 0}
|
|
||||||
m_sendNavigationEvents: 1
|
|
||||||
m_DragThreshold: 10
|
|
||||||
--- !u!4 &2108843208
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 2108843205}
|
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
m_Curve:
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
- serializedVersion: 3
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
time: 0
|
||||||
m_ConstrainProportionsScale: 0
|
value: 1
|
||||||
m_Children: []
|
inSlope: 0
|
||||||
m_Father: {fileID: 0}
|
outSlope: 0
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
tangentMode: 0
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 1
|
||||||
|
value: 0
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 0
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
m_PreInfinity: 2
|
||||||
|
m_PostInfinity: 2
|
||||||
|
m_RotationOrder: 4
|
||||||
|
panLevelCustomCurve:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Curve:
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0
|
||||||
|
value: 0
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 0
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
m_PreInfinity: 2
|
||||||
|
m_PostInfinity: 2
|
||||||
|
m_RotationOrder: 4
|
||||||
|
spreadCustomCurve:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Curve:
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0
|
||||||
|
value: 0
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 0
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
m_PreInfinity: 2
|
||||||
|
m_PostInfinity: 2
|
||||||
|
m_RotationOrder: 4
|
||||||
|
reverbZoneMixCustomCurve:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Curve:
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0
|
||||||
|
value: 1
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 0
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
m_PreInfinity: 2
|
||||||
|
m_PostInfinity: 2
|
||||||
|
m_RotationOrder: 4
|
||||||
--- !u!1001 &210807110740579273
|
--- !u!1001 &210807110740579273
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -65546,11 +65565,11 @@ PrefabInstance:
|
|||||||
m_Modifications:
|
m_Modifications:
|
||||||
- target: {fileID: 243343966221896818, guid: 6447e7f877b893f46bc4efe1ebc9fe9e, type: 3}
|
- target: {fileID: 243343966221896818, guid: 6447e7f877b893f46bc4efe1ebc9fe9e, type: 3}
|
||||||
propertyPath: m_LocalPosition.x
|
propertyPath: m_LocalPosition.x
|
||||||
value: 0
|
value: 16.78
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 243343966221896818, guid: 6447e7f877b893f46bc4efe1ebc9fe9e, type: 3}
|
- target: {fileID: 243343966221896818, guid: 6447e7f877b893f46bc4efe1ebc9fe9e, type: 3}
|
||||||
propertyPath: m_LocalPosition.y
|
propertyPath: m_LocalPosition.y
|
||||||
value: 0
|
value: -12.76
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 243343966221896818, guid: 6447e7f877b893f46bc4efe1ebc9fe9e, type: 3}
|
- target: {fileID: 243343966221896818, guid: 6447e7f877b893f46bc4efe1ebc9fe9e, type: 3}
|
||||||
propertyPath: m_LocalPosition.z
|
propertyPath: m_LocalPosition.z
|
||||||
@ -65601,10 +65620,26 @@ PrefabInstance:
|
|||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
m_TransformParent: {fileID: 0}
|
m_TransformParent: {fileID: 0}
|
||||||
m_Modifications:
|
m_Modifications:
|
||||||
|
- target: {fileID: 1680573792925415762, guid: d00d92ab204198c489965b31a298b234, type: 3}
|
||||||
|
propertyPath: Builder
|
||||||
|
value:
|
||||||
|
objectReference: {fileID: 1814202916}
|
||||||
- target: {fileID: 1680573792925415762, guid: d00d92ab204198c489965b31a298b234, type: 3}
|
- target: {fileID: 1680573792925415762, guid: d00d92ab204198c489965b31a298b234, type: 3}
|
||||||
propertyPath: VfxDash
|
propertyPath: VfxDash
|
||||||
value:
|
value:
|
||||||
objectReference: {fileID: 4566952472781634859, guid: daf6ae43ee06c424ba624a471e90b72c, type: 3}
|
objectReference: {fileID: 4566952472781634859, guid: daf6ae43ee06c424ba624a471e90b72c, type: 3}
|
||||||
|
- target: {fileID: 1680573792925415762, guid: d00d92ab204198c489965b31a298b234, type: 3}
|
||||||
|
propertyPath: MoveSpeed
|
||||||
|
value: 16
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 1680573792925415762, guid: d00d92ab204198c489965b31a298b234, type: 3}
|
||||||
|
propertyPath: DriftSpeed
|
||||||
|
value: 80
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 1680573792925415762, guid: d00d92ab204198c489965b31a298b234, type: 3}
|
||||||
|
propertyPath: DashMultiplier
|
||||||
|
value: 80
|
||||||
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 1680573792925415762, guid: d00d92ab204198c489965b31a298b234, type: 3}
|
- target: {fileID: 1680573792925415762, guid: d00d92ab204198c489965b31a298b234, type: 3}
|
||||||
propertyPath: 'ClassIndicators.Array.data[0]'
|
propertyPath: 'ClassIndicators.Array.data[0]'
|
||||||
value:
|
value:
|
||||||
@ -65627,7 +65662,7 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4060073025839678449, guid: d00d92ab204198c489965b31a298b234, type: 3}
|
- target: {fileID: 4060073025839678449, guid: d00d92ab204198c489965b31a298b234, type: 3}
|
||||||
propertyPath: m_LocalPosition.y
|
propertyPath: m_LocalPosition.y
|
||||||
value: -0.73
|
value: -0.26
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4060073025839678449, guid: d00d92ab204198c489965b31a298b234, type: 3}
|
- target: {fileID: 4060073025839678449, guid: d00d92ab204198c489965b31a298b234, type: 3}
|
||||||
propertyPath: m_LocalPosition.z
|
propertyPath: m_LocalPosition.z
|
||||||
@ -65665,12 +65700,16 @@ PrefabInstance:
|
|||||||
propertyPath: m_Name
|
propertyPath: m_Name
|
||||||
value: Player
|
value: Player
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 9147163641451663911, guid: d00d92ab204198c489965b31a298b234, type: 3}
|
||||||
|
propertyPath: m_TagString
|
||||||
|
value: Player
|
||||||
|
objectReference: {fileID: 0}
|
||||||
m_RemovedComponents: []
|
m_RemovedComponents: []
|
||||||
m_RemovedGameObjects: []
|
m_RemovedGameObjects: []
|
||||||
m_AddedGameObjects: []
|
m_AddedGameObjects: []
|
||||||
m_AddedComponents:
|
m_AddedComponents:
|
||||||
- targetCorrespondingSourceObject: {fileID: 9147163641451663911, guid: d00d92ab204198c489965b31a298b234, type: 3}
|
- targetCorrespondingSourceObject: {fileID: 9147163641451663911, guid: d00d92ab204198c489965b31a298b234, type: 3}
|
||||||
insertIndex: -1
|
insertIndex: 1
|
||||||
addedObject: {fileID: 1814202916}
|
addedObject: {fileID: 1814202916}
|
||||||
m_SourcePrefab: {fileID: 100100000, guid: d00d92ab204198c489965b31a298b234, type: 3}
|
m_SourcePrefab: {fileID: 100100000, guid: d00d92ab204198c489965b31a298b234, type: 3}
|
||||||
--- !u!1001 &5778659820767749594
|
--- !u!1001 &5778659820767749594
|
||||||
@ -65876,5 +65915,4 @@ SceneRoots:
|
|||||||
- {fileID: 1177372200}
|
- {fileID: 1177372200}
|
||||||
- {fileID: 2316236105731553357}
|
- {fileID: 2316236105731553357}
|
||||||
- {fileID: 5778659820767749594}
|
- {fileID: 5778659820767749594}
|
||||||
- {fileID: 2108843208}
|
|
||||||
- {fileID: 210807110740579273}
|
- {fileID: 210807110740579273}
|
||||||
|
|||||||
8
Assets/Scriptables/AI.meta
Normal file
8
Assets/Scriptables/AI.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f97cfcba126037940a7935c0ca5213dd
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/Scriptables/AI/Enemy.meta
Normal file
8
Assets/Scriptables/AI/Enemy.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 78b0e57b5fb1cbb4d8ddcd69c61a2833
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
14
Assets/Scriptables/AI/Enemy/EnemyAttackState01.asset
Normal file
14
Assets/Scriptables/AI/Enemy/EnemyAttackState01.asset
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 8dc550eabcee2e84e94ae0bc898d72b4, type: 3}
|
||||||
|
m_Name: EnemyAttackState01
|
||||||
|
m_EditorClassIdentifier:
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0b9cc3e63ee0125479639c05b89977f8
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
15
Assets/Scriptables/AI/Enemy/EnemyChaseState01.asset
Normal file
15
Assets/Scriptables/AI/Enemy/EnemyChaseState01.asset
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 5f2962a1dddd6484e913c62893d7e512, type: 3}
|
||||||
|
m_Name: EnemyChaseState01
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
Speed: 10
|
||||||
8
Assets/Scriptables/AI/Enemy/EnemyChaseState01.asset.meta
Normal file
8
Assets/Scriptables/AI/Enemy/EnemyChaseState01.asset.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 71a5afe255167e14cad7bb413bdef532
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
14
Assets/Scriptables/AI/Enemy/EnemyWalkState01.asset
Normal file
14
Assets/Scriptables/AI/Enemy/EnemyWalkState01.asset
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: e82366a8b141d1c4587e07f13e902f29, type: 3}
|
||||||
|
m_Name: EnemyWalkState01
|
||||||
|
m_EditorClassIdentifier:
|
||||||
8
Assets/Scriptables/AI/Enemy/EnemyWalkState01.asset.meta
Normal file
8
Assets/Scriptables/AI/Enemy/EnemyWalkState01.asset.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5cd5bb6e94e95cf4c961f0433390f59f
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -11,7 +11,7 @@ using UnityEngine.UI;
|
|||||||
[SelectionBase]
|
[SelectionBase]
|
||||||
public class Player : MonoBehaviour {
|
public class Player : MonoBehaviour {
|
||||||
[Header("Asset/Prefab")]
|
[Header("Asset/Prefab")]
|
||||||
[SerializeField] public BuilderHandlerRunner Builder;
|
[SerializeField] public BuilderManager Builder;
|
||||||
|
|
||||||
[Header("Movement")]
|
[Header("Movement")]
|
||||||
[SerializeField] private Rigidbody2D RigidBody;
|
[SerializeField] private Rigidbody2D RigidBody;
|
||||||
@ -46,7 +46,7 @@ public class Player : MonoBehaviour {
|
|||||||
private enum Directions { Left, Right, Up, Down }
|
private enum Directions { Left, Right, Up, Down }
|
||||||
|
|
||||||
void Awake() {
|
void Awake() {
|
||||||
Builder = GetComponent<BuilderHandlerRunner>();
|
Builder = GetComponent<BuilderManager>();
|
||||||
VfxDashHandler = new VfxHandlerBase(VfxDash, 5, 5);
|
VfxDashHandler = new VfxHandlerBase(VfxDash, 5, 5);
|
||||||
SetClass(1);
|
SetClass(1);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,17 +0,0 @@
|
|||||||
using UnityEngine;
|
|
||||||
|
|
||||||
namespace AI.Base {
|
|
||||||
public abstract class AgentController : MonoBehaviour {
|
|
||||||
protected IState currentState;
|
|
||||||
|
|
||||||
protected virtual void Update() {
|
|
||||||
currentState?.Tick();
|
|
||||||
IState next = currentState?.CheckTransitions();
|
|
||||||
if (next != null && next != currentState) {
|
|
||||||
currentState.OnExit();
|
|
||||||
currentState = next;
|
|
||||||
currentState.OnEnter();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,8 +1,10 @@
|
|||||||
namespace AI.Base {
|
using System.Runtime.InteropServices.WindowsRuntime;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
public interface IState {
|
public interface IState {
|
||||||
void OnEnter();
|
public void Initialize(Transform ownerTransform);
|
||||||
void Tick();
|
public void Start();
|
||||||
void OnExit();
|
public void Tick();
|
||||||
IState CheckTransitions();
|
public void Stop();
|
||||||
}
|
public virtual IState GetNextState() => null;
|
||||||
}
|
}
|
||||||
|
|||||||
34
Assets/Scripts/Runtime/AI/Base/StateManager.cs
Normal file
34
Assets/Scripts/Runtime/AI/Base/StateManager.cs
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
using Unity.IO.LowLevel.Unsafe;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace AI.Base {
|
||||||
|
abstract public class StateManager : MonoBehaviour {
|
||||||
|
protected IState CurrentState;
|
||||||
|
|
||||||
|
virtual protected void Update() {
|
||||||
|
CurrentState?.Tick();
|
||||||
|
IState next = GetNextState();
|
||||||
|
if (next != null && next != CurrentState) {
|
||||||
|
CurrentState.Stop();
|
||||||
|
CurrentState = next;
|
||||||
|
CurrentState.Start();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract protected IState GetNextState();
|
||||||
|
}
|
||||||
|
|
||||||
|
public class StateNode : ScriptableObject, IState {
|
||||||
|
protected Transform Owner;
|
||||||
|
|
||||||
|
virtual public void Initialize(Transform ownerTransform) {
|
||||||
|
Owner = ownerTransform;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual public void Start() {}
|
||||||
|
virtual public void Stop() {}
|
||||||
|
virtual public void Tick() {}
|
||||||
|
|
||||||
|
virtual public IState GetNextState() => this;
|
||||||
|
}
|
||||||
|
}
|
||||||
10
Assets/Scripts/Runtime/AI/StateMachines/EnemyAttackState.cs
Normal file
10
Assets/Scripts/Runtime/AI/StateMachines/EnemyAttackState.cs
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
using AI.Base;
|
||||||
|
using System;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
[CreateAssetMenu(menuName = "AI/Enemy/EnemyAttackState")]
|
||||||
|
public class EnemyAttackState : StateNode {
|
||||||
|
override public void Start() { Debug.Log("Entering Idle"); }
|
||||||
|
override public void Tick() { }
|
||||||
|
override public void Stop() { Debug.Log("Exiting Idle"); }
|
||||||
|
}
|
||||||
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8dc550eabcee2e84e94ae0bc898d72b4
|
||||||
26
Assets/Scripts/Runtime/AI/StateMachines/EnemyChaseState.cs
Normal file
26
Assets/Scripts/Runtime/AI/StateMachines/EnemyChaseState.cs
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
using AI.Base;
|
||||||
|
using System;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
[CreateAssetMenu(menuName = "AI/Enemy/EnemyChaseState")]
|
||||||
|
public class EnemyChaseState : StateNode {
|
||||||
|
public float Speed = 3f;
|
||||||
|
|
||||||
|
private Transform Player;
|
||||||
|
|
||||||
|
override public void Start() {
|
||||||
|
Player = GameObject.FindGameObjectWithTag("Player").transform;
|
||||||
|
Debug.Log("Entering Chase");
|
||||||
|
}
|
||||||
|
|
||||||
|
override public void Tick() {
|
||||||
|
if (Owner != null && Player != null) {
|
||||||
|
Vector2 dir = (Player.position - Owner.position).normalized;
|
||||||
|
Owner.position += (Vector3)dir * Speed * Time.deltaTime;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override public void Stop() {
|
||||||
|
Debug.Log("Exiting Chase");
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5f2962a1dddd6484e913c62893d7e512
|
||||||
@ -1,15 +0,0 @@
|
|||||||
using AI.Base;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
namespace AI.StateMachines {
|
|
||||||
public class EnemyStateMachine : AgentController {
|
|
||||||
public IState IdleState;
|
|
||||||
public IState ChaseState;
|
|
||||||
|
|
||||||
protected override void Start() {
|
|
||||||
base.Start();
|
|
||||||
currentState = IdleState;
|
|
||||||
currentState?.OnEnter();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,2 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 71ab834a15cf8184ca8a951d8ea332bb
|
|
||||||
54
Assets/Scripts/Runtime/AI/StateMachines/EnemyStateManager.cs
Normal file
54
Assets/Scripts/Runtime/AI/StateMachines/EnemyStateManager.cs
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
using AI.Base;
|
||||||
|
using UnityEngine;
|
||||||
|
using static TMPro.SpriteAssetUtilities.TexturePacker_JsonArray;
|
||||||
|
|
||||||
|
public class EnemyStateManager : StateManager {
|
||||||
|
[Header("States")]
|
||||||
|
[SerializeField] public StateNode WalkState;
|
||||||
|
[SerializeField] public StateNode ChaseState;
|
||||||
|
[SerializeField] public StateNode AttackState;
|
||||||
|
|
||||||
|
[Header("Attributes")]
|
||||||
|
[SerializeField] private float ChaseDistance = 10f;
|
||||||
|
[SerializeField] private float AttackDistance = 1f;
|
||||||
|
|
||||||
|
private Transform Player;
|
||||||
|
|
||||||
|
protected void Start() {
|
||||||
|
Player = GameObject.FindGameObjectWithTag("Player")?.transform;
|
||||||
|
WalkState.Initialize(this.transform);
|
||||||
|
ChaseState.Initialize(this.transform);
|
||||||
|
AttackState.Initialize(this.transform);
|
||||||
|
CurrentState = WalkState;
|
||||||
|
CurrentState.Start();
|
||||||
|
}
|
||||||
|
|
||||||
|
override protected IState GetNextState() {
|
||||||
|
if (Player == null)
|
||||||
|
return CurrentState;
|
||||||
|
|
||||||
|
float dist = Vector2.Distance(transform.position, Player.position);
|
||||||
|
if (dist < AttackDistance)
|
||||||
|
return AttackState.GetNextState();
|
||||||
|
else if (dist < ChaseDistance)
|
||||||
|
return ChaseState.GetNextState();
|
||||||
|
else
|
||||||
|
return WalkState.GetNextState();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDrawGizmos() {
|
||||||
|
DrawChaseDistance();
|
||||||
|
DrawAttackDistance();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DrawChaseDistance() {
|
||||||
|
Gizmos.color = CurrentState == (IState)ChaseState ? Color.yellow : Color.green;
|
||||||
|
Vector2 center = this.transform.position;
|
||||||
|
Gizmos.DrawWireSphere(center, ChaseDistance);
|
||||||
|
}
|
||||||
|
private void DrawAttackDistance() {
|
||||||
|
Gizmos.color = CurrentState == (IState)AttackState ? Color.red : Color.green;
|
||||||
|
Vector2 center = this.transform.position;
|
||||||
|
Gizmos.DrawWireSphere(center, AttackDistance);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a5c89455bac58d943a2e1e110d37a24d
|
||||||
12
Assets/Scripts/Runtime/AI/StateMachines/EnemyWalkState.cs
Normal file
12
Assets/Scripts/Runtime/AI/StateMachines/EnemyWalkState.cs
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
using AI.Base;
|
||||||
|
using System;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
[CreateAssetMenu(menuName = "AI/Enemy/EnemyWalkState")]
|
||||||
|
public class EnemyWalkState : StateNode {
|
||||||
|
|
||||||
|
override public void Start() { Debug.Log("Entering Idle"); }
|
||||||
|
override public void Tick() { }
|
||||||
|
override public void Stop() { Debug.Log("Exiting Idle"); }
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e82366a8b141d1c4587e07f13e902f29
|
||||||
@ -1,11 +1,28 @@
|
|||||||
|
using AI.Base;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
[CreateAssetMenu(menuName = "Custom/BuilderSettings")]
|
[CreateAssetMenu(menuName = "Custom/BuilderSettings")]
|
||||||
public class BuilderSettings : ScriptableObject {
|
public class BuilderSettings : ScriptableObject, IState {
|
||||||
[Header("Build Prefabs")]
|
[Header("Build Prefabs")]
|
||||||
public GameObject ObjToSpawn;
|
public GameObject ObjToSpawn;
|
||||||
public GameObject ObjAsPreview;
|
public GameObject ObjAsPreview;
|
||||||
|
|
||||||
[Header("VFX")]
|
[Header("VFX")]
|
||||||
public GameObject Vfx;
|
public GameObject Vfx;
|
||||||
|
|
||||||
|
public void Initialize(Transform ownerTransform) {
|
||||||
|
throw new System.NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Start() {
|
||||||
|
throw new System.NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Stop() {
|
||||||
|
throw new System.NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Tick() {
|
||||||
|
throw new System.NotImplementedException();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
8
Assets/Scripts/Runtime/Enemies.meta
Normal file
8
Assets/Scripts/Runtime/Enemies.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 22398a98badb3d8418a9b3cccc131ae6
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/Scripts/Runtime/GameManagement.meta
Normal file
8
Assets/Scripts/Runtime/GameManagement.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b3faa1c4d29927b43b1e2c49d090a33d
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
25
Assets/Scripts/Runtime/GameManagement/GameManager.cs
Normal file
25
Assets/Scripts/Runtime/GameManagement/GameManager.cs
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace Assets.Scripts.Runtime.GameManagement {
|
||||||
|
public class GameManager : MonoBehaviour {
|
||||||
|
public static bool IsPaused { get; private set; }
|
||||||
|
[SerializeField] private GameObject pauseMenuUI;
|
||||||
|
|
||||||
|
void Update() {
|
||||||
|
if (Input.GetKeyDown(KeyCode.Escape))
|
||||||
|
TogglePause();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void TogglePause() {
|
||||||
|
IsPaused = !IsPaused;
|
||||||
|
Time.timeScale = IsPaused ? 0f : 1f;
|
||||||
|
AudioListener.pause = IsPaused;
|
||||||
|
pauseMenuUI.SetActive(IsPaused);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7691458bb4726aa4da3d14211bfa3e4d
|
||||||
Loading…
Reference in New Issue
Block a user