diff --git a/Assets/Animation/AnimationControllers/BasicEnemyAc.controller b/Assets/Animation/AnimationControllers/BasicEnemyAc.controller index 7aee554..06dcd2b 100644 --- a/Assets/Animation/AnimationControllers/BasicEnemyAc.controller +++ b/Assets/Animation/AnimationControllers/BasicEnemyAc.controller @@ -10,7 +10,8 @@ AnimatorState: m_Name: Enemy1_walk m_Speed: 1 m_CycleOffset: 0 - m_Transitions: [] + m_Transitions: + - {fileID: -6959489070667304808} m_StateMachineBehaviours: [] m_Position: {x: 50, y: 50, z: 0} m_IKOnFeet: 0 @@ -26,6 +27,62 @@ AnimatorState: m_MirrorParameter: m_CycleOffsetParameter: m_TimeParameter: +--- !u!1101 &-6959489070667304808 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: Move + m_EventTreshold: 0 + - m_ConditionMode: 1 + m_ConditionEvent: Idle + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 8206254002601701628} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.48275864 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &-3526955028126852807 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: Move + m_EventTreshold: 0 + - m_ConditionMode: 2 + m_ConditionEvent: Idle + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -9190944687798816731} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.9958878 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 --- !u!1101 &-620458994428194117 AnimatorStateTransition: m_ObjectHideFlags: 1 @@ -60,12 +117,18 @@ AnimatorController: m_Name: BasicEnemyAc serializedVersion: 5 m_AnimatorParameters: - - m_Name: Knockback + - m_Name: Move m_Type: 4 m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 9100000} + m_Controller: {fileID: 0} + - m_Name: Idle + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} m_AnimatorLayers: - serializedVersion: 5 m_Name: Base Layer @@ -89,8 +152,7 @@ AnimatorState: m_Name: Enemy1_Hurt m_Speed: 1 m_CycleOffset: 0 - m_Transitions: - - {fileID: 5795875195906319899} + m_Transitions: [] m_StateMachineBehaviours: [] m_Position: {x: 50, y: 50, z: 0} m_IKOnFeet: 0 @@ -142,18 +204,47 @@ AnimatorStateMachine: m_ChildStates: - serializedVersion: 1 m_State: {fileID: -9190944687798816731} - m_Position: {x: 240, y: 80, z: 0} + m_Position: {x: 290, y: -20, z: 0} - serializedVersion: 1 m_State: {fileID: 2331468422103063953} - m_Position: {x: 240, y: 20, z: 0} + m_Position: {x: 50, y: -20, z: 0} + - serializedVersion: 1 + m_State: {fileID: 8206254002601701628} + m_Position: {x: 290, y: 140, z: 0} m_ChildStateMachines: [] - m_AnyStateTransitions: - - {fileID: -620458994428194117} + m_AnyStateTransitions: [] m_EntryTransitions: [] m_StateMachineTransitions: {} m_StateMachineBehaviours: [] - m_AnyStatePosition: {x: 260, y: -30, z: 0} + m_AnyStatePosition: {x: 50, y: 30, z: 0} m_EntryPosition: {x: 50, y: 90, z: 0} m_ExitPosition: {x: 50, y: 140, z: 0} m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} m_DefaultState: {fileID: -9190944687798816731} +--- !u!1102 &8206254002601701628 +AnimatorState: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Enemy1_Idle + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -3526955028126852807} + 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: 5d963416a087ce848be82e3a39b8fdf0, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: diff --git a/Assets/Animation/Animations/Enemy/Enemy1_Idle.anim b/Assets/Animation/Animations/Enemy/Enemy1_Idle.anim new file mode 100644 index 0000000..b8c525b --- /dev/null +++ b/Assets/Animation/Animations/Enemy/Enemy1_Idle.anim @@ -0,0 +1,85 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Enemy1_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: 6469914809321751411, guid: e77d92723044c9d4f8e8a7c82573d073, + type: 3} + - time: 0.083333336 + value: {fileID: -2540635606737711782, guid: e77d92723044c9d4f8e8a7c82573d073, + type: 3} + - time: 0.16666667 + value: {fileID: 8571016785330678217, guid: e77d92723044c9d4f8e8a7c82573d073, + type: 3} + - time: 0.25 + value: {fileID: -6999863032711394166, guid: e77d92723044c9d4f8e8a7c82573d073, + type: 3} + - time: 0.28333333 + value: {fileID: -6999863032711394166, guid: e77d92723044c9d4f8e8a7c82573d073, + 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: 6469914809321751411, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: -2540635606737711782, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: 8571016785330678217, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: -6999863032711394166, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: -6999863032711394166, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.3 + 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_Events: [] diff --git a/Assets/Animation/Animations/Enemy/Enemy1_Idle.anim.meta b/Assets/Animation/Animations/Enemy/Enemy1_Idle.anim.meta new file mode 100644 index 0000000..0a1c9d5 --- /dev/null +++ b/Assets/Animation/Animations/Enemy/Enemy1_Idle.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5d963416a087ce848be82e3a39b8fdf0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Animation/Animations/Enemy/Enemy1_walk.anim b/Assets/Animation/Animations/Enemy/Enemy1_walk.anim index 20e4e6a..228693d 100644 --- a/Assets/Animation/Animations/Enemy/Enemy1_walk.anim +++ b/Assets/Animation/Animations/Enemy/Enemy1_walk.anim @@ -6,7 +6,7 @@ AnimationClip: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: Enemy1_walk + m_Name: Enemy1_Walk serializedVersion: 6 m_Legacy: 0 m_Compressed: 0 @@ -20,28 +20,28 @@ AnimationClip: m_PPtrCurves: - curve: - time: 0 - value: {fileID: 6369384564468328029, guid: 3bb687d3e4e625245b3d010df27f3a6d, + value: {fileID: 7942249098920568159, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} - time: 0.06666667 - value: {fileID: 6138185936412383962, guid: 3bb687d3e4e625245b3d010df27f3a6d, + value: {fileID: 6294125324160034484, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} - time: 0.13333334 - value: {fileID: -275327403722753088, guid: 3bb687d3e4e625245b3d010df27f3a6d, + value: {fileID: 5845606359538220865, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} - time: 0.2 - value: {fileID: 850753403565259673, guid: 3bb687d3e4e625245b3d010df27f3a6d, + value: {fileID: 7559897690265657476, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} - time: 0.26666668 - value: {fileID: 3471711084143634667, guid: 3bb687d3e4e625245b3d010df27f3a6d, + value: {fileID: -4821758819355737828, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} - time: 0.33333334 - value: {fileID: -3991021883962996350, guid: 3bb687d3e4e625245b3d010df27f3a6d, + value: {fileID: 4027105108782761397, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} - time: 0.4 - value: {fileID: -5760543911693439659, guid: 3bb687d3e4e625245b3d010df27f3a6d, + value: {fileID: -4356277145322495249, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} - time: 0.46666667 - value: {fileID: -3974637543865793226, guid: 3bb687d3e4e625245b3d010df27f3a6d, + value: {fileID: -4536786074267818148, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} attribute: m_Sprite path: @@ -62,14 +62,14 @@ AnimationClip: customType: 23 isPPtrCurve: 1 pptrCurveMapping: - - {fileID: 6369384564468328029, guid: 3bb687d3e4e625245b3d010df27f3a6d, type: 3} - - {fileID: 6138185936412383962, guid: 3bb687d3e4e625245b3d010df27f3a6d, type: 3} - - {fileID: -275327403722753088, guid: 3bb687d3e4e625245b3d010df27f3a6d, type: 3} - - {fileID: 850753403565259673, guid: 3bb687d3e4e625245b3d010df27f3a6d, type: 3} - - {fileID: 3471711084143634667, guid: 3bb687d3e4e625245b3d010df27f3a6d, type: 3} - - {fileID: -3991021883962996350, guid: 3bb687d3e4e625245b3d010df27f3a6d, type: 3} - - {fileID: -5760543911693439659, guid: 3bb687d3e4e625245b3d010df27f3a6d, type: 3} - - {fileID: -3974637543865793226, guid: 3bb687d3e4e625245b3d010df27f3a6d, type: 3} + - {fileID: 7942249098920568159, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: 6294125324160034484, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: 5845606359538220865, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: 7559897690265657476, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: -4821758819355737828, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: 4027105108782761397, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: -4356277145322495249, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} + - {fileID: -4536786074267818148, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} m_AnimationClipSettings: serializedVersion: 2 m_AdditiveReferencePoseClip: {fileID: 0} diff --git a/Assets/Materials/EnemyMaterial.physicsMaterial2D b/Assets/Materials/EnemyMaterial.physicsMaterial2D new file mode 100644 index 0000000..9b050ba --- /dev/null +++ b/Assets/Materials/EnemyMaterial.physicsMaterial2D @@ -0,0 +1,11 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!62 &6200000 +PhysicsMaterial2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: EnemyMaterial + friction: 0 + bounciness: 0 diff --git a/Assets/Materials/EnemyMaterial.physicsMaterial2D.meta b/Assets/Materials/EnemyMaterial.physicsMaterial2D.meta new file mode 100644 index 0000000..866c0e5 --- /dev/null +++ b/Assets/Materials/EnemyMaterial.physicsMaterial2D.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a56be316809bfb04b9619281395b55bb +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 6200000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Main.unity b/Assets/Scenes/Main.unity index f3d0837..2cbeeef 100644 --- a/Assets/Scenes/Main.unity +++ b/Assets/Scenes/Main.unity @@ -26976,7 +26976,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 556279999} - m_Layer: 9 + m_Layer: 0 m_Name: WallCheck m_TagString: Untagged m_Icon: {fileID: 0} @@ -27061,7 +27061,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 892116532} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: 3.18, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 2138779603} @@ -27131,7 +27131,7 @@ Rigidbody2D: m_LinearDrag: 0 m_AngularDrag: 0.05 m_GravityScale: 8 - m_Material: {fileID: 0} + m_Material: {fileID: 6200000, guid: a56be316809bfb04b9619281395b55bb, type: 2} m_Interpolate: 0 m_SleepingMode: 1 m_CollisionDetection: 1 @@ -27175,7 +27175,7 @@ SpriteRenderer: m_SortingLayerID: -1031487247 m_SortingLayer: 4 m_SortingOrder: 0 - m_Sprite: {fileID: 6369384564468328029, guid: 3bb687d3e4e625245b3d010df27f3a6d, + m_Sprite: {fileID: 7942249098920568159, guid: e77d92723044c9d4f8e8a7c82573d073, type: 3} m_Color: {r: 1, g: 1, b: 1, a: 1} m_FlipX: 0 @@ -35970,7 +35970,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 1881142531} - - component: {fileID: 1881142532} + - component: {fileID: 1881142533} m_Layer: 0 m_Name: Enemy1 m_TagString: Untagged @@ -35993,7 +35993,7 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1881142532 +--- !u!114 &1881142533 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -36002,34 +36002,14 @@ MonoBehaviour: m_GameObject: {fileID: 1881142530} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a6cdb301218e5c14bbfd54d736f699ff, type: 3} + m_Script: {fileID: 11500000, guid: a1fcba6b1a5db63439c38a820a941109, type: 3} m_Name: m_EditorClassIdentifier: - groundCheck: {fileID: 2138779603} + entityData: {fileID: 11400000, guid: b722b6081dff5fc48a07f50f3b391492, type: 2} wallCheck: {fileID: 556279999} - touchDamageCheck: {fileID: 1280154865} - whatIsGround: - serializedVersion: 2 - m_Bits: 256 - whatIsPlayer: - serializedVersion: 2 - m_Bits: 2048 - groundCheckDistance: 0.5 - wallCheckDistance: 0.1 - movementSpeed: 3 - maxHealth: 30 - knockbackDuration: 0.1 - touchDamageCooldown: 0.2 - touchDamage: 10 - touchDamageWidth: 1.97 - touchDamageHeight: 0.98 - knockbackSpeed: {x: 10, y: 5} - hitParticle: {fileID: 1607698850734752776, guid: a75fed3be19fd4e43a0ae215689d76a8, - type: 3} - deathChunkParticle: {fileID: 1482411589124549042, guid: 11ab0c1767df18c47a4ecc7832d158ab, - type: 3} - deathBloodParticle: {fileID: 6973840520826084357, guid: 123a8f48fb319724799ad291fbf131c8, - type: 3} + ledgeCheck: {fileID: 2138779603} + idleStateData: {fileID: 11400000, guid: c1afee4bde01d524a8780ceb0e2942cf, type: 2} + moveStateData: {fileID: 11400000, guid: 8d3710213c08b1c4cb0429ae94a8a87a, type: 2} --- !u!1 &2086072978 GameObject: m_ObjectHideFlags: 0 @@ -36256,7 +36236,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 2138779603} - m_Layer: 9 + m_Layer: 0 m_Name: GroundCheck m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Scripts/Enemy/EnemySpecific.meta b/Assets/Scripts/Enemy/EnemySpecific.meta new file mode 100644 index 0000000..f98823d --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1de8f1dbab8eabf41aa3b7e715871aed +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1.meta new file mode 100644 index 0000000..bcacdbf --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d001eeb6f74f3874ebb876483fecc815 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data.meta new file mode 100644 index 0000000..7d11a81 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b7ae57f8dc35f104caf468cb80f75ba9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_BaseData.asset b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_BaseData.asset new file mode 100644 index 0000000..5bff30e --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_BaseData.asset @@ -0,0 +1,19 @@ +%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: 57df72b3fdb53634da7bfbc546142b09, type: 3} + m_Name: E1_BaseData + m_EditorClassIdentifier: + wallCheckDistance: 0.2 + ledgeCheckDistance: 0.45 + whatIsGround: + serializedVersion: 2 + m_Bits: 256 diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_BaseData.asset.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_BaseData.asset.meta new file mode 100644 index 0000000..c9b4efa --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_BaseData.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b722b6081dff5fc48a07f50f3b391492 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_IdleStateData.asset b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_IdleStateData.asset new file mode 100644 index 0000000..a1cc2c1 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_IdleStateData.asset @@ -0,0 +1,16 @@ +%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: aaab811baedddc44f882613071bf592f, type: 3} + m_Name: E1_IdleStateData + m_EditorClassIdentifier: + minIdleTime: 1 + maxIdleTime: 2 diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_IdleStateData.asset.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_IdleStateData.asset.meta new file mode 100644 index 0000000..e4bfb96 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_IdleStateData.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c1afee4bde01d524a8780ceb0e2942cf +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_MoveStateData.asset b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_MoveStateData.asset new file mode 100644 index 0000000..265469b --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_MoveStateData.asset @@ -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: 29d0f54a61c9b044fa3173897f9af062, type: 3} + m_Name: E1_MoveStateData + m_EditorClassIdentifier: + movementSpeed: 3 diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_MoveStateData.asset.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_MoveStateData.asset.meta new file mode 100644 index 0000000..6ed603b --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Data/E1_MoveStateData.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8d3710213c08b1c4cb0429ae94a8a87a +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_IdleState.cs b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_IdleState.cs new file mode 100644 index 0000000..1d7ee2a --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_IdleState.cs @@ -0,0 +1,37 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class E1_IdleState : IdleState +{ + private Enemy1 enemy; + public E1_IdleState(Entity _entity, FiniteStateMachine _stateMachine, string _animBoolName, D_IdleState _stateData, Enemy1 _enemy) : base(_entity, _stateMachine, _animBoolName, _stateData) + { + this.enemy = _enemy; + } + + public override void Enter() + { + base.Enter(); + } + + public override void Exit() + { + base.Exit(); + } + + public override void LogicUpdate() + { + base.LogicUpdate(); + + if (isIdleTimeOver) + { + stateMachine.ChangeState(enemy.moveState); + } + } + + public override void PhysicsUpdate() + { + base.PhysicsUpdate(); + } +} diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_IdleState.cs.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_IdleState.cs.meta new file mode 100644 index 0000000..a950de5 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_IdleState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 243dc99a0a87b7e438eb681f6ab90d73 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_MoveState.cs b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_MoveState.cs new file mode 100644 index 0000000..bb035d6 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_MoveState.cs @@ -0,0 +1,38 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class E1_MoveState : MoveState +{ + private Enemy1 enemy; + public E1_MoveState(Entity _entity, FiniteStateMachine _stateMachine, string _animBoolName, D_MoveState _stateData, Enemy1 _enemy) : base(_entity, _stateMachine, _animBoolName, _stateData) + { + this.enemy = _enemy; + } + + public override void Enter() + { + base.Enter(); + } + + public override void Exit() + { + base.Exit(); + } + + public override void LogicUpdate() + { + base.LogicUpdate(); + + if (!isDetectingLedge || isTouchingWall) + { + enemy.idleState.SetFlipAfterIdle(true); + stateMachine.ChangeState(enemy.idleState); + } + } + + public override void PhysicsUpdate() + { + base.PhysicsUpdate(); + } +} diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_MoveState.cs.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_MoveState.cs.meta new file mode 100644 index 0000000..37b6831 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/E1_MoveState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 05d7271c523296b4cb78d520c44292a1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Enemy1.cs b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Enemy1.cs new file mode 100644 index 0000000..586a908 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Enemy1.cs @@ -0,0 +1,22 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Enemy1 : Entity +{ + public E1_IdleState idleState { get; private set; } + public E1_MoveState moveState { get; private set; } + + [SerializeField] private D_IdleState idleStateData; + [SerializeField] private D_MoveState moveStateData; + + public override void Start() + { + base.Start(); + + moveState = new E1_MoveState(this, stateMachine, "Move", moveStateData, this); + idleState = new E1_IdleState(this, stateMachine, "Idle", idleStateData, this); + + stateMachine.Initialize(moveState); + } +} diff --git a/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Enemy1.cs.meta b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Enemy1.cs.meta new file mode 100644 index 0000000..427b808 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemySpecific/Enemy1/Enemy1.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a1fcba6b1a5db63439c38a820a941109 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/StateMachine.meta b/Assets/Scripts/Enemy/StateMachine.meta new file mode 100644 index 0000000..82215be --- /dev/null +++ b/Assets/Scripts/Enemy/StateMachine.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dafc2e0c6c27ab647b6b7a4cd2536504 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/StateMachine/Entity.cs b/Assets/Scripts/Enemy/StateMachine/Entity.cs new file mode 100644 index 0000000..0f6469d --- /dev/null +++ b/Assets/Scripts/Enemy/StateMachine/Entity.cs @@ -0,0 +1,72 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +// Entity Class is the Base Class for Enemies so all Enemies are going to Inherit Entity class + +public class Entity : MonoBehaviour +{ + public FiniteStateMachine stateMachine; + + public D_Entity entityData; + + public int facingDirection { get; private set; } + public Rigidbody2D rb { get; private set; } + public Animator anim { get; private set; } + public GameObject aliveGO { get; private set; } + + [SerializeField] private Transform wallCheck; + [SerializeField] private Transform ledgeCheck; + + private Vector2 velocityWorkspace; + + public virtual void Start() + { + facingDirection = 1; + aliveGO = transform.Find("Alive").gameObject; + rb = aliveGO.GetComponent(); + anim = aliveGO.GetComponent(); + stateMachine = new FiniteStateMachine(); + } + + public virtual void Update() + { + stateMachine.currentState.LogicUpdate(); + } + + public virtual void FixedUpdate() + { + stateMachine.currentState.PhysicsUpdate(); + } + + public virtual void SetVelocity(float _velocity) + { + velocityWorkspace.Set(_velocity * facingDirection, rb.velocity.y); + rb.velocity = velocityWorkspace; + } + + public virtual bool CheckWall() + { + return Physics2D.Raycast(wallCheck.position, aliveGO.transform.right, entityData.wallCheckDistance, entityData.whatIsGround); + } + + public virtual bool CheckLedge() + { + return Physics2D.Raycast(ledgeCheck.position, Vector2.down, entityData.ledgeCheckDistance, entityData.whatIsGround); + } + + public virtual void Flip() + { + facingDirection *= -1; + //Vector2 scale = aliveGO.transform.localScale; + //scale.x *= -1.0f; + //aliveGO.transform.localScale = scale; + aliveGO.transform.Rotate(0.0f, -180.0f, 0.0f); + } + + public virtual void OnDrawGizmos() + { + Gizmos.DrawLine(wallCheck.position, wallCheck.position + (Vector3)(Vector2.right * facingDirection * entityData.wallCheckDistance)); + Gizmos.DrawLine(ledgeCheck.position, ledgeCheck.position + (Vector3)(Vector2.down * facingDirection * entityData.ledgeCheckDistance)); + } +} diff --git a/Assets/Scripts/Enemy/StateMachine/Entity.cs.meta b/Assets/Scripts/Enemy/StateMachine/Entity.cs.meta new file mode 100644 index 0000000..a70a6d9 --- /dev/null +++ b/Assets/Scripts/Enemy/StateMachine/Entity.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e39299202f543944a9f6ed30d6eb253a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/StateMachine/FiniteStateMachine.cs b/Assets/Scripts/Enemy/StateMachine/FiniteStateMachine.cs new file mode 100644 index 0000000..1e0dc80 --- /dev/null +++ b/Assets/Scripts/Enemy/StateMachine/FiniteStateMachine.cs @@ -0,0 +1,22 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +// FiniteStateMachine class is going to keep track of what State the Enemy is currently in & run the correct code from that State. Keep track of current State. +public class FiniteStateMachine +{ + public State currentState { get; private set; } // Keep track of current state which has public getter and private setter + + public void Initialize(State _startingState) + { + currentState = _startingState; + currentState.Enter(); + } + + public void ChangeState(State _newState) + { + currentState.Exit(); + currentState = _newState; + currentState.Enter(); + } +} diff --git a/Assets/Scripts/Enemy/StateMachine/FiniteStateMachine.cs.meta b/Assets/Scripts/Enemy/StateMachine/FiniteStateMachine.cs.meta new file mode 100644 index 0000000..e743535 --- /dev/null +++ b/Assets/Scripts/Enemy/StateMachine/FiniteStateMachine.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 650104a22a3dbdf45922f9964004652e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/StateMachine/State.cs b/Assets/Scripts/Enemy/StateMachine/State.cs new file mode 100644 index 0000000..d69c15e --- /dev/null +++ b/Assets/Scripts/Enemy/StateMachine/State.cs @@ -0,0 +1,43 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +/* State class has the every function that all the States should have so Enter, Exit, Normal Update function and Physics Update state. + * So when we create a state like Idle or Move then those are going to be inherited from State class. In our Enemy class we are going to create object of the State */ +public class State +{ + protected FiniteStateMachine stateMachine; // keep track of FiniteStateMachine that it belongs to + protected Entity entity; // keep track of which entity it belongs to + + protected float startTime; + + protected string animBoolName; + + public State(Entity _entity, FiniteStateMachine _stateMachine, string _animBoolName) // since we need to create Objects out of these States we need to create Constructor + { + this.entity = _entity; + this.stateMachine = _stateMachine; + this.animBoolName = _animBoolName; + } + + public virtual void Enter() // virtual means thats this function can be redefine in the Derived class + { + startTime = Time.time; + entity.anim.SetBool(animBoolName, true); + } + + public virtual void Exit() + { + entity.anim.SetBool(animBoolName, false); + } + + public virtual void LogicUpdate() + { + + } + + public virtual void PhysicsUpdate() + { + + } +} diff --git a/Assets/Scripts/Enemy/StateMachine/State.cs.meta b/Assets/Scripts/Enemy/StateMachine/State.cs.meta new file mode 100644 index 0000000..d31df04 --- /dev/null +++ b/Assets/Scripts/Enemy/StateMachine/State.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f5f45f11a7820cc4e986237e2cdb6afc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/States.meta b/Assets/Scripts/Enemy/States.meta new file mode 100644 index 0000000..99d5ccc --- /dev/null +++ b/Assets/Scripts/Enemy/States.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5837aa1820f50c44da8a9cd131d47e3a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/States/Data.meta b/Assets/Scripts/Enemy/States/Data.meta new file mode 100644 index 0000000..5585e6a --- /dev/null +++ b/Assets/Scripts/Enemy/States/Data.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6be2f227dccaa054fbfb0749db6d5cf4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/States/Data/D_Entity.cs b/Assets/Scripts/Enemy/States/Data/D_Entity.cs new file mode 100644 index 0000000..806c2be --- /dev/null +++ b/Assets/Scripts/Enemy/States/Data/D_Entity.cs @@ -0,0 +1,13 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +[CreateAssetMenu(fileName = "newEntityData", menuName = "Data/EntityData/BaseData")] + +public class D_Entity : ScriptableObject // we need to create Data objects in Unity & this is something ScriptableObject allows us to do +{ + public float wallCheckDistance = 0.2f; + public float ledgeCheckDistance = 0.45f; + + public LayerMask whatIsGround; +} diff --git a/Assets/Scripts/Enemy/States/Data/D_Entity.cs.meta b/Assets/Scripts/Enemy/States/Data/D_Entity.cs.meta new file mode 100644 index 0000000..3b1cb0f --- /dev/null +++ b/Assets/Scripts/Enemy/States/Data/D_Entity.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 57df72b3fdb53634da7bfbc546142b09 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/States/Data/D_IdleState.cs b/Assets/Scripts/Enemy/States/Data/D_IdleState.cs new file mode 100644 index 0000000..f855048 --- /dev/null +++ b/Assets/Scripts/Enemy/States/Data/D_IdleState.cs @@ -0,0 +1,12 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +[CreateAssetMenu(fileName = "newIdleStateData", menuName = "Data/State Data/Idle State")] + + +public class D_IdleState : ScriptableObject +{ + public float minIdleTime = 0.5f; + public float maxIdleTime = 1.5f; +} diff --git a/Assets/Scripts/Enemy/States/Data/D_IdleState.cs.meta b/Assets/Scripts/Enemy/States/Data/D_IdleState.cs.meta new file mode 100644 index 0000000..93f7578 --- /dev/null +++ b/Assets/Scripts/Enemy/States/Data/D_IdleState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: aaab811baedddc44f882613071bf592f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/States/Data/D_MoveState.cs b/Assets/Scripts/Enemy/States/Data/D_MoveState.cs new file mode 100644 index 0000000..da6f224 --- /dev/null +++ b/Assets/Scripts/Enemy/States/Data/D_MoveState.cs @@ -0,0 +1,12 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +[CreateAssetMenu(fileName = "newMoveStateData", menuName = "Data/State Data/Move State")] + + +public class D_MoveState : ScriptableObject // Scriptable object is a Data Container to save large amount of data independent of Class Intances +{ + public float movementSpeed = 3f; + +} diff --git a/Assets/Scripts/Enemy/States/Data/D_MoveState.cs.meta b/Assets/Scripts/Enemy/States/Data/D_MoveState.cs.meta new file mode 100644 index 0000000..9c558f1 --- /dev/null +++ b/Assets/Scripts/Enemy/States/Data/D_MoveState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 29d0f54a61c9b044fa3173897f9af062 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/States/IdleState.cs b/Assets/Scripts/Enemy/States/IdleState.cs new file mode 100644 index 0000000..db096dd --- /dev/null +++ b/Assets/Scripts/Enemy/States/IdleState.cs @@ -0,0 +1,58 @@ +using UnityEngine; + +public class IdleState : State +{ + protected D_IdleState stateData; + + protected bool flipAfterIdle; + protected bool isIdleTimeOver; + + protected float idleTime; + public IdleState(Entity _entity, FiniteStateMachine _stateMachine, string _animBoolName, D_IdleState _stateData) : base(_entity, _stateMachine, _animBoolName) + { + this.stateData = _stateData; + } + + public override void Enter() + { + base.Enter(); + entity.SetVelocity(0f); + isIdleTimeOver = false; + SetRandomIdleTime(); + } + + public override void Exit() + { + base.Exit(); + + if (flipAfterIdle) + { + entity.Flip(); + } + } + + public override void LogicUpdate() + { + base.LogicUpdate(); + + if (Time.time >= startTime + idleTime) + { + isIdleTimeOver = true; + } + } + + public override void PhysicsUpdate() + { + base.PhysicsUpdate(); + } + + public void SetFlipAfterIdle(bool _flip) // Setter for flipAfterIdle + { + flipAfterIdle = _flip; + } + + private void SetRandomIdleTime() + { + idleTime = Random.Range(stateData.minIdleTime, stateData.maxIdleTime); + } +} diff --git a/Assets/Scripts/Enemy/States/IdleState.cs.meta b/Assets/Scripts/Enemy/States/IdleState.cs.meta new file mode 100644 index 0000000..90a0a3b --- /dev/null +++ b/Assets/Scripts/Enemy/States/IdleState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 93e820c7c1bd8a247a1c90e9d591e4a9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/States/MoveState.cs b/Assets/Scripts/Enemy/States/MoveState.cs new file mode 100644 index 0000000..bc724d6 --- /dev/null +++ b/Assets/Scripts/Enemy/States/MoveState.cs @@ -0,0 +1,42 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class MoveState : State +{ + protected D_MoveState stateData; + + protected bool isTouchingWall; + protected bool isDetectingLedge; + public MoveState(Entity _entity, FiniteStateMachine _stateMachine, string _animBoolName, D_MoveState _stateData) : base(_entity, _stateMachine, _animBoolName) + { + this.stateData = _stateData; + } + + public override void Enter() + { + base.Enter(); + entity.SetVelocity(stateData.movementSpeed); + + isDetectingLedge = entity.CheckLedge(); + isTouchingWall = entity.CheckWall(); + } + + public override void Exit() + { + base.Exit(); + } + + public override void LogicUpdate() + { + base.LogicUpdate(); + } + + public override void PhysicsUpdate() + { + base.PhysicsUpdate(); + + isDetectingLedge = entity.CheckLedge(); + isTouchingWall = entity.CheckWall(); + } +} diff --git a/Assets/Scripts/Enemy/States/MoveState.cs.meta b/Assets/Scripts/Enemy/States/MoveState.cs.meta new file mode 100644 index 0000000..347f194 --- /dev/null +++ b/Assets/Scripts/Enemy/States/MoveState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9abc71b4ae025ab4c9df4152edb86378 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Sprites/Enemy/Enemy 1.2.png b/Assets/Sprites/Enemy/Enemy 1.2.png deleted file mode 100644 index a2b808b..0000000 Binary files a/Assets/Sprites/Enemy/Enemy 1.2.png and /dev/null differ diff --git a/Assets/Sprites/Enemy/Enemy 1.png b/Assets/Sprites/Enemy/Enemy 1.png new file mode 100644 index 0000000..05455ba Binary files /dev/null and b/Assets/Sprites/Enemy/Enemy 1.png differ diff --git a/Assets/Sprites/Enemy/Enemy 1.2.png.meta b/Assets/Sprites/Enemy/Enemy 1.png.meta similarity index 64% rename from Assets/Sprites/Enemy/Enemy 1.2.png.meta rename to Assets/Sprites/Enemy/Enemy 1.png.meta index bd64e55..5c6d5cb 100644 --- a/Assets/Sprites/Enemy/Enemy 1.2.png.meta +++ b/Assets/Sprites/Enemy/Enemy 1.png.meta @@ -1,61 +1,73 @@ fileFormatVersion: 2 -guid: 3bb687d3e4e625245b3d010df27f3a6d +guid: e77d92723044c9d4f8e8a7c82573d073 TextureImporter: internalIDToNameTable: - first: - 213: 6369384564468328029 - second: Enemy 1.2_0 + 213: 7942249098920568159 + second: Enemy 1_0 - first: - 213: 6138185936412383962 - second: Enemy 1.2_1 + 213: 6294125324160034484 + second: Enemy 1_1 - first: - 213: -275327403722753088 - second: Enemy 1.2_2 + 213: 5845606359538220865 + second: Enemy 1_2 - first: - 213: 850753403565259673 - second: Enemy 1.2_3 + 213: 7559897690265657476 + second: Enemy 1_3 - first: - 213: 3471711084143634667 - second: Enemy 1.2_4 + 213: -4821758819355737828 + second: Enemy 1_4 - first: - 213: -3991021883962996350 - second: Enemy 1.2_5 + 213: 4027105108782761397 + second: Enemy 1_5 - first: - 213: -5760543911693439659 - second: Enemy 1.2_6 + 213: -4356277145322495249 + second: Enemy 1_6 - first: - 213: -3974637543865793226 - second: Enemy 1.2_7 + 213: -4536786074267818148 + second: Enemy 1_7 - first: - 213: -5594722903381117994 - second: Enemy 1.2_8 + 213: 6469914809321751411 + second: Enemy 1_8 - first: - 213: 6200630191683923526 - second: Enemy 1.2_9 + 213: -2540635606737711782 + second: Enemy 1_9 - first: - 213: -3627136891024772522 - second: Enemy 1.2_10 + 213: 8571016785330678217 + second: Enemy 1_10 - first: - 213: 8363528568878816504 - second: Enemy 1.2_11 + 213: -6999863032711394166 + second: Enemy 1_11 - first: - 213: -1198644127468891106 - second: Enemy 1.2_12 + 213: -7306169539634696901 + second: Enemy 1_12 - first: - 213: 3094342574952375879 - second: Enemy 1.2_13 + 213: -1145555792994578308 + second: Enemy 1_13 - first: - 213: 7492954755084660316 - second: Enemy 1.2_14 + 213: -5680426439555403407 + second: Enemy 1_14 - first: - 213: -2871824185258403877 - second: Enemy 1.2_15 + 213: 2624123026477953508 + second: Enemy 1_15 - first: - 213: -4890390274435696291 - second: Enemy 1.2_16 + 213: -4634043128709410468 + second: Enemy 1_16 - first: - 213: -3698650164525975811 - second: Enemy 1.2_17 + 213: -6204320956982381673 + second: Enemy 1_17 + - first: + 213: 4182601990571434440 + second: Enemy 1_18 + - first: + 213: -3033029466344800901 + second: Enemy 1_19 + - first: + 213: -4838196666909180953 + second: Enemy 1_20 + - first: + 213: 3542500663635982729 + second: Enemy 1_21 externalObjects: {} serializedVersion: 11 mipmaps: @@ -137,18 +149,6 @@ TextureImporter: overridden: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Windows Store Apps - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Android maxTextureSize: 2048 @@ -165,11 +165,11 @@ TextureImporter: serializedVersion: 2 sprites: - serializedVersion: 2 - name: Enemy 1.2_0 + name: Enemy 1_0 rect: serializedVersion: 2 x: 0 - y: 128 + y: 192 width: 64 height: 64 alignment: 0 @@ -179,18 +179,18 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: d56adf2d389946850800000000000000 - internalID: 6369384564468328029 + spriteID: f55a3d2c979883e60800000000000000 + internalID: 7942249098920568159 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_1 + name: Enemy 1_1 rect: serializedVersion: 2 x: 64 - y: 128 + y: 192 width: 64 height: 64 alignment: 0 @@ -200,18 +200,18 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: ada982176973f2550800000000000000 - internalID: 6138185936412383962 + spriteID: 4b6695672a9395750800000000000000 + internalID: 6294125324160034484 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_2 + name: Enemy 1_2 rect: serializedVersion: 2 x: 128 - y: 128 + y: 192 width: 64 height: 64 alignment: 0 @@ -221,18 +221,18 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: 0cbbc206f27dd2cf0800000000000000 - internalID: -275327403722753088 + spriteID: 14f3a0d3304cf1150800000000000000 + internalID: 5845606359538220865 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_3 + name: Enemy 1_3 rect: serializedVersion: 2 x: 192 - y: 128 + y: 192 width: 64 height: 64 alignment: 0 @@ -242,18 +242,18 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: 99b36fa86bb7ecb00800000000000000 - internalID: 850753403565259673 + spriteID: 480a49e25e62ae860800000000000000 + internalID: 7559897690265657476 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_4 + name: Enemy 1_4 rect: serializedVersion: 2 x: 256 - y: 128 + y: 192 width: 64 height: 64 alignment: 0 @@ -263,18 +263,18 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: be8ea2d46defd2030800000000000000 - internalID: 3471711084143634667 + spriteID: c11c1bb86eba51db0800000000000000 + internalID: -4821758819355737828 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_5 + name: Enemy 1_5 rect: serializedVersion: 2 x: 320 - y: 128 + y: 192 width: 64 height: 64 alignment: 0 @@ -284,18 +284,18 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: 289439bedba0d98c0800000000000000 - internalID: -3991021883962996350 + spriteID: 5b5482a82c623e730800000000000000 + internalID: 4027105108782761397 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_6 + name: Enemy 1_6 rect: serializedVersion: 2 x: 384 - y: 128 + y: 192 width: 64 height: 64 alignment: 0 @@ -305,17 +305,38 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: 55d297e35df6e00b0800000000000000 - internalID: -5760543911693439659 + spriteID: fe266e154056b83c0800000000000000 + internalID: -4356277145322495249 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_7 + name: Enemy 1_7 rect: serializedVersion: 2 x: 448 + y: 192 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: c57e3553a191a01c0800000000000000 + internalID: -4536786074267818148 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Enemy 1_8 + rect: + serializedVersion: 2 + x: 0 y: 128 width: 64 height: 64 @@ -326,14 +347,77 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: 635c2fe563047d8c0800000000000000 - internalID: -3974637543865793226 + spriteID: 37389a07d31c9c950800000000000000 + internalID: 6469914809321751411 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_8 + name: Enemy 1_9 + rect: + serializedVersion: 2 + x: 64 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: a5d80b46069ddbcd0800000000000000 + internalID: -2540635606737711782 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Enemy 1_10 + rect: + serializedVersion: 2 + x: 128 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 9c9ab85ea5e52f670800000000000000 + internalID: 8571016785330678217 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Enemy 1_11 + rect: + serializedVersion: 2 + x: 192 + y: 128 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: a8c49da98ad7bde90800000000000000 + internalID: -6999863032711394166 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Enemy 1_12 rect: serializedVersion: 2 x: 0 @@ -347,14 +431,14 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: 6d3f937592d8b52b0800000000000000 - internalID: -5594722903381117994 + spriteID: b3d6b4173854b9a90800000000000000 + internalID: -7306169539634696901 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_9 + name: Enemy 1_13 rect: serializedVersion: 2 x: 64 @@ -368,14 +452,14 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: 64ee1e69e401d0650800000000000000 - internalID: 6200630191683923526 + spriteID: c70da20631b2a10f0800000000000000 + internalID: -1145555792994578308 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_10 + name: Enemy 1_14 rect: serializedVersion: 2 x: 128 @@ -389,14 +473,14 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: 652f0ca0732d9adc0800000000000000 - internalID: -3627136891024772522 + spriteID: 1713099df321b21b0800000000000000 + internalID: -5680426439555403407 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_11 + name: Enemy 1_15 rect: serializedVersion: 2 x: 192 @@ -410,18 +494,18 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: 8fc5ad8ebe8311470800000000000000 - internalID: 8363528568878816504 + spriteID: 4e134284df1ca6420800000000000000 + internalID: 2624123026477953508 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_12 + name: Enemy 1_16 rect: serializedVersion: 2 - x: 0 - y: 0 + x: 256 + y: 64 width: 64 height: 64 alignment: 0 @@ -431,18 +515,18 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: e14db1a448f8d5fe0800000000000000 - internalID: -1198644127468891106 + spriteID: c519f6f935290bfb0800000000000000 + internalID: -4634043128709410468 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_13 + name: Enemy 1_17 rect: serializedVersion: 2 - x: 64 - y: 0 + x: 320 + y: 64 width: 64 height: 64 alignment: 0 @@ -452,17 +536,17 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: 74667696d2051fa20800000000000000 - internalID: 3094342574952375879 + spriteID: 793bd8626f2d5e9a0800000000000000 + internalID: -6204320956982381673 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_14 + name: Enemy 1_18 rect: serializedVersion: 2 - x: 128 + x: 0 y: 0 width: 64 height: 64 @@ -473,17 +557,17 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: c5e25ee76a25cf760800000000000000 - internalID: 7492954755084660316 + spriteID: 8c12adc99569b0a30800000000000000 + internalID: 4182601990571434440 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_15 + name: Enemy 1_19 rect: serializedVersion: 2 - x: 192 + x: 64 y: 0 width: 64 height: 64 @@ -494,17 +578,17 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: bd71c4c7e1b3528d0800000000000000 - internalID: -2871824185258403877 + spriteID: b7db93125c388e5d0800000000000000 + internalID: -3033029466344800901 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_16 + name: Enemy 1_20 rect: serializedVersion: 2 - x: 256 + x: 128 y: 0 width: 64 height: 64 @@ -515,17 +599,17 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: d593c3fa4f7d12cb0800000000000000 - internalID: -4890390274435696291 + spriteID: 7eb366be3c54bdcb0800000000000000 + internalID: -4838196666909180953 vertices: [] indices: edges: [] weights: [] - serializedVersion: 2 - name: Enemy 1.2_17 + name: Enemy 1_21 rect: serializedVersion: 2 - x: 320 + x: 192 y: 0 width: 64 height: 64 @@ -536,8 +620,8 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: df63dfa8541cbacc0800000000000000 - internalID: -3698650164525975811 + spriteID: 989bb98a59d792130800000000000000 + internalID: 3542500663635982729 vertices: [] indices: edges: []