From 2ba3232ceb0f99765beb84cae7ecee0a7e30f428 Mon Sep 17 00:00:00 2001 From: Dmitriy Makarov <dimamakarov1941@yandex.ru> Date: Sat, 15 Oct 2022 18:16:43 +0300 Subject: [PATCH 1/7] Enemy move --- Assets/Enemies/Enemies/FirstEnemy.asset | 4 +- .../Enemies/Scripts/AbstractClasses/Enemy.cs | 22 +- Assets/Enemies/Scripts/Data/EnemyData.cs | 2 +- Assets/Enemies/Scripts/Enemies/UsualEnemy.cs | 17 +- Assets/Enemies/Scripts/Interfaces/Ienemy.cs | 1 - Assets/Enemies/Sprites/enemy.png.meta | 74 ++++- Assets/Scenes/SampleScene.unity | 270 +++++++++++++++--- Assets/Sprites/background.png.meta | 4 +- 8 files changed, 335 insertions(+), 59 deletions(-) diff --git a/Assets/Enemies/Enemies/FirstEnemy.asset b/Assets/Enemies/Enemies/FirstEnemy.asset index 37e7c58..d430a7f 100644 --- a/Assets/Enemies/Enemies/FirstEnemy.asset +++ b/Assets/Enemies/Enemies/FirstEnemy.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d495c1419b7f95f65559715b21c6115ceea53e646f29b5eb0e18c82fe1f497f4 -size 498 +oid sha256:f1e01a495b171f905d93265b536bfa22ce206bb2ebad82b703052e638b0905e0 +size 560 diff --git a/Assets/Enemies/Scripts/AbstractClasses/Enemy.cs b/Assets/Enemies/Scripts/AbstractClasses/Enemy.cs index f1fdd62..009bd28 100644 --- a/Assets/Enemies/Scripts/AbstractClasses/Enemy.cs +++ b/Assets/Enemies/Scripts/AbstractClasses/Enemy.cs @@ -1,18 +1,26 @@ using UnityEngine; namespace Enemies { + [RequireComponent(typeof(SpriteRenderer))] public abstract class Enemy : MonoBehaviour, IEnemy { - - - [SerializeField] EnemyData _enemyData; - Transform _playerTransform; - bool _stunned; - + [SerializeField] protected EnemyData enemyData; + protected Transform playerTransform; + bool _stunned = false; protected virtual void Start() { - _playerTransform = GameObject.FindGameObjectWithTag("Player").transform; + playerTransform = GameObject.FindGameObjectWithTag("Player").transform; } + protected virtual void FixedUpdate() + { + if (!_stunned) + { + Move(); + } + } + protected abstract void Move(); + protected abstract void Attack(); + protected abstract void Die(); public int ApplyDamage(int power) { return power; diff --git a/Assets/Enemies/Scripts/Data/EnemyData.cs b/Assets/Enemies/Scripts/Data/EnemyData.cs index 304fdb2..075cc70 100644 --- a/Assets/Enemies/Scripts/Data/EnemyData.cs +++ b/Assets/Enemies/Scripts/Data/EnemyData.cs @@ -14,6 +14,6 @@ namespace Enemies public float attackRange; public int attackPower; [Header("Visuals")] - public Sprite sprite; + public Sprite spriteIdle; } } diff --git a/Assets/Enemies/Scripts/Enemies/UsualEnemy.cs b/Assets/Enemies/Scripts/Enemies/UsualEnemy.cs index ef3a400..2660e5b 100644 --- a/Assets/Enemies/Scripts/Enemies/UsualEnemy.cs +++ b/Assets/Enemies/Scripts/Enemies/UsualEnemy.cs @@ -6,17 +6,28 @@ namespace Enemies { public class UsualEnemy : Enemy { - private void Move() + SpriteRenderer _spriteRenderer; + + protected override void Attack() { + throw new System.NotImplementedException(); + } + protected override void Die() + { + throw new System.NotImplementedException(); } - private void Attack() + protected override void Move() { + transform.position = Vector2.MoveTowards(transform.position, playerTransform.position, enemyData.speed * Time.fixedDeltaTime); } - private void Die() + protected override void Start() { + base.Start(); + _spriteRenderer = GetComponent<SpriteRenderer>(); + _spriteRenderer.sprite = enemyData.spriteIdle; } } } diff --git a/Assets/Enemies/Scripts/Interfaces/Ienemy.cs b/Assets/Enemies/Scripts/Interfaces/Ienemy.cs index 017422b..5a6beb7 100644 --- a/Assets/Enemies/Scripts/Interfaces/Ienemy.cs +++ b/Assets/Enemies/Scripts/Interfaces/Ienemy.cs @@ -1,6 +1,5 @@ public interface IEnemy { - private void Move() { } diff --git a/Assets/Enemies/Sprites/enemy.png.meta b/Assets/Enemies/Sprites/enemy.png.meta index 5549e57..48a358f 100644 --- a/Assets/Enemies/Sprites/enemy.png.meta +++ b/Assets/Enemies/Sprites/enemy.png.meta @@ -42,7 +42,7 @@ TextureImporter: nPOTScale: 0 lightmap: 0 compressionQuality: 50 - spriteMode: 0 + spriteMode: 2 spriteExtrude: 1 spriteMeshType: 1 alignment: 0 @@ -115,18 +115,84 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 - sprites: [] + sprites: + - serializedVersion: 2 + name: enemy_0 + rect: + serializedVersion: 2 + x: 112 + y: 368 + width: 96 + height: 184 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 2dc465e3cca877f4a9cebe48311e6c5e + internalID: -310729417 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: enemy_1 + rect: + serializedVersion: 2 + x: 424 + y: 368 + width: 112 + height: 168 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 28ab0e4ead8f4054eb4e9b5b29e15a85 + internalID: 629391732 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: enemy_2 + rect: + serializedVersion: 2 + x: 80 + y: 56 + width: 168 + height: 168 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: fbe3f8e6807a7b449ae54a23ba45b962 + internalID: -889375371 + vertices: [] + indices: + edges: [] + weights: [] outline: [] physicsShape: [] bones: [] - spriteID: + spriteID: a758f6cbd8eb8e943b482a92654a32c8 internalID: 0 vertices: [] indices: edges: [] weights: [] secondaryTextures: [] - nameFileIdTable: {} + nameFileIdTable: + enemy_1: 629391732 + enemy_2: -889375371 + enemy_0: -310729417 spritePackingTag: pSDRemoveMatte: 0 pSDShowRemoveMatteOption: 0 diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index b77ef78..0fafeb5 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -177,7 +177,7 @@ Camera: far clip plane: 1000 field of view: 60 orthographic: 1 - orthographic size: 5 + orthographic size: 5.2817383 m_Depth: -1 m_CullingMask: serializedVersion: 2 @@ -201,7 +201,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 330585543} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalPosition: {x: 0, y: 0.04, z: -10} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -330,7 +330,7 @@ Transform: m_GameObject: {fileID: 410087039} m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} m_LocalPosition: {x: 0, y: 3, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalScale: {x: 1, y: 1, z: 0.99999994} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} @@ -356,7 +356,7 @@ MonoBehaviour: m_ShadowLayerMask: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} ---- !u!1 &783171183 +--- !u!1 &832575517 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -364,30 +364,48 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 783171184} + - component: {fileID: 832575519} + - component: {fileID: 832575518} m_Layer: 0 - m_Name: StupidPlayer - m_TagString: Player + m_Name: Global Volume + m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &783171184 +--- !u!114 &832575518 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 832575517} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IsGlobal: 1 + priority: 0 + blendDistance: 0 + weight: 1 + sharedProfile: {fileID: 11400000, guid: a6560a915ef98420e9faacc1c7438823, type: 2} +--- !u!4 &832575519 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 783171183} + m_GameObject: {fileID: 832575517} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0.1140461, y: -0.21444988, z: 0.038454056} + m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 4 + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &832575517 +--- !u!1 &1409384834 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -395,46 +413,82 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 832575519} - - component: {fileID: 832575518} + - component: {fileID: 1409384836} + - component: {fileID: 1409384835} m_Layer: 0 - m_Name: Global Volume - m_TagString: Untagged + m_Name: StupidPlayer + m_TagString: Player m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &832575518 -MonoBehaviour: +--- !u!212 &1409384835 +SpriteRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 832575517} + m_GameObject: {fileID: 1409384834} m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IsGlobal: 1 - priority: 0 - blendDistance: 0 - weight: 1 - sharedProfile: {fileID: 11400000, guid: a6560a915ef98420e9faacc1c7438823, type: 2} ---- !u!4 &832575519 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 7482667652216324306, guid: 311925a002f4447b3a28927169b83ea6, + type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1409384836 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 832575517} + m_GameObject: {fileID: 1409384834} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: -4.72, y: 0.35, z: -0.694693} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 2 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1703298692 GameObject: @@ -445,7 +499,8 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 1703298694} - - component: {fileID: 1703298693} + - component: {fileID: 1703298695} + - component: {fileID: 1703298696} m_Layer: 0 m_Name: UsualEnemy m_TagString: Untagged @@ -453,7 +508,75 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &1703298693 +--- !u!4 &1703298694 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1703298692} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.51, y: -0.21444988, z: 0.038454056} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1703298695 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1703298692} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 7482667652216324306, guid: 311925a002f4447b3a28927169b83ea6, + type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!114 &1703298696 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -465,19 +588,88 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 56d6b620f13b6d94688a58625d0382d2, type: 3} m_Name: m_EditorClassIdentifier: - _enemyData: {fileID: 11400000, guid: a9f183e580e81ce42b49eb5979490515, type: 2} ---- !u!4 &1703298694 + enemyData: {fileID: 11400000, guid: a9f183e580e81ce42b49eb5979490515, type: 2} +--- !u!1 &1771414120 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1771414122} + - component: {fileID: 1771414121} + m_Layer: 0 + m_Name: BackGround + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1771414121 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1771414120} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: -50 + m_Sprite: {fileID: 21300000, guid: a5e3b6e74c301f34da9f103e407c8357, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1771414122 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1703298692} + m_GameObject: {fileID: 1771414120} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0.1140461, y: -0.21444988, z: 0.038454056} + m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/Sprites/background.png.meta b/Assets/Sprites/background.png.meta index fcdf1df..3176385 100644 --- a/Assets/Sprites/background.png.meta +++ b/Assets/Sprites/background.png.meta @@ -42,7 +42,7 @@ TextureImporter: nPOTScale: 0 lightmap: 0 compressionQuality: 50 - spriteMode: 0 + spriteMode: 1 spriteExtrude: 1 spriteMeshType: 1 alignment: 0 @@ -119,7 +119,7 @@ TextureImporter: outline: [] physicsShape: [] bones: [] - spriteID: + spriteID: 5e97eb03825dee720800000000000000 internalID: 0 vertices: [] indices: -- GitLab From 966f99d1e26e015ec6bf1f637dd74033040fabc8 Mon Sep 17 00:00:00 2001 From: Dmitriy Makarov <dimamakarov1941@yandex.ru> Date: Sat, 15 Oct 2022 18:19:13 +0300 Subject: [PATCH 2/7] fix flip --- Assets/Enemies/Scripts/Enemies/UsualEnemy.cs | 1 + Assets/Scenes/SampleScene.unity | 88 +++++++++++++++++++- 2 files changed, 86 insertions(+), 3 deletions(-) diff --git a/Assets/Enemies/Scripts/Enemies/UsualEnemy.cs b/Assets/Enemies/Scripts/Enemies/UsualEnemy.cs index 2660e5b..e7c52fb 100644 --- a/Assets/Enemies/Scripts/Enemies/UsualEnemy.cs +++ b/Assets/Enemies/Scripts/Enemies/UsualEnemy.cs @@ -21,6 +21,7 @@ namespace Enemies protected override void Move() { transform.position = Vector2.MoveTowards(transform.position, playerTransform.position, enemyData.speed * Time.fixedDeltaTime); + _spriteRenderer.flipX = transform.position.x < playerTransform.position.x; } protected override void Start() diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index 0fafeb5..4cccfde 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -415,6 +415,7 @@ GameObject: m_Component: - component: {fileID: 1409384836} - component: {fileID: 1409384835} + - component: {fileID: 1409384837} m_Layer: 0 m_Name: StupidPlayer m_TagString: Player @@ -490,6 +491,70 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!58 &1409384837 +CircleCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1409384834} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + serializedVersion: 2 + m_Radius: 0.5 +--- !u!1 &1624989161 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1624989162} + - component: {fileID: 1624989163} + m_Layer: 0 + m_Name: AttackRange + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1624989162 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1624989161} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1703298694} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!70 &1624989163 +CapsuleCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1624989161} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: -0.55606115, y: 0.19397485} + m_Size: {x: 0.83622336, y: 1.594856} + m_Direction: 0 --- !u!1 &1703298692 GameObject: m_ObjectHideFlags: 0 @@ -501,6 +566,7 @@ GameObject: - component: {fileID: 1703298694} - component: {fileID: 1703298695} - component: {fileID: 1703298696} + - component: {fileID: 1703298697} m_Layer: 0 m_Name: UsualEnemy m_TagString: Untagged @@ -519,7 +585,8 @@ Transform: m_LocalPosition: {x: 1.51, y: -0.21444988, z: 0.038454056} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] + m_Children: + - {fileID: 1624989162} m_Father: {fileID: 0} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -564,8 +631,7 @@ SpriteRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 - m_Sprite: {fileID: 7482667652216324306, guid: 311925a002f4447b3a28927169b83ea6, - type: 3} + m_Sprite: {fileID: -310729417, guid: 2d5e3a83f95fd5d43ac6cda1acf17aee, type: 3} m_Color: {r: 1, g: 1, b: 1, a: 1} m_FlipX: 0 m_FlipY: 0 @@ -589,6 +655,22 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: enemyData: {fileID: 11400000, guid: a9f183e580e81ce42b49eb5979490515, type: 2} +--- !u!70 &1703298697 +CapsuleCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1703298692} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0.10345328, y: -0.064658225} + m_Size: {x: 0.6379137, y: 1.4914027} + m_Direction: 0 --- !u!1 &1771414120 GameObject: m_ObjectHideFlags: 0 -- GitLab From 715976157298b38a7e9826bd6bf7f7a23162a734 Mon Sep 17 00:00:00 2001 From: Dmitriy Makarov <dimamakarov1941@yandex.ru> Date: Sat, 15 Oct 2022 18:33:16 +0300 Subject: [PATCH 3/7] add animations to enemy --- Assets/Enemies/Enemies/FirstEnemy.meta | 8 + .../Enemies/FirstEnemy/Animations.meta | 8 + .../Enemies/FirstEnemy/Animations/Attack.anim | 53 +++++ .../FirstEnemy/Animations/Attack.anim.meta | 8 + .../Enemies/FirstEnemy/Animations/Die.anim | 68 ++++++ .../FirstEnemy/Animations/Die.anim.meta | 8 + .../Animations/UsualEnemy.controller | 217 ++++++++++++++++++ .../Animations/UsualEnemy.controller.meta | 8 + .../Enemies/FirstEnemy/Animations/Walk.anim | 74 ++++++ .../FirstEnemy/Animations/Walk.anim.meta | 8 + .../Enemies/{ => FirstEnemy}/FirstEnemy.asset | 0 .../{ => FirstEnemy}/FirstEnemy.asset.meta | 0 .../Enemies/Scripts/AbstractClasses/Enemy.cs | 5 + Assets/Enemies/Scripts/Attacks.meta | 8 + Assets/Enemies/Scripts/Attacks/AttackRange.cs | 18 ++ .../Scripts/Attacks/AttackRange.cs.meta | 11 + Assets/Enemies/Scripts/Data/EnemyData.cs | 2 - Assets/Enemies/Scripts/Enemies/UsualEnemy.cs | 22 +- Assets/Scenes/SampleScene.unity | 118 ++++++++++ 19 files changed, 631 insertions(+), 13 deletions(-) create mode 100644 Assets/Enemies/Enemies/FirstEnemy.meta create mode 100644 Assets/Enemies/Enemies/FirstEnemy/Animations.meta create mode 100644 Assets/Enemies/Enemies/FirstEnemy/Animations/Attack.anim create mode 100644 Assets/Enemies/Enemies/FirstEnemy/Animations/Attack.anim.meta create mode 100644 Assets/Enemies/Enemies/FirstEnemy/Animations/Die.anim create mode 100644 Assets/Enemies/Enemies/FirstEnemy/Animations/Die.anim.meta create mode 100644 Assets/Enemies/Enemies/FirstEnemy/Animations/UsualEnemy.controller create mode 100644 Assets/Enemies/Enemies/FirstEnemy/Animations/UsualEnemy.controller.meta create mode 100644 Assets/Enemies/Enemies/FirstEnemy/Animations/Walk.anim create mode 100644 Assets/Enemies/Enemies/FirstEnemy/Animations/Walk.anim.meta rename Assets/Enemies/Enemies/{ => FirstEnemy}/FirstEnemy.asset (100%) rename Assets/Enemies/Enemies/{ => FirstEnemy}/FirstEnemy.asset.meta (100%) create mode 100644 Assets/Enemies/Scripts/Attacks.meta create mode 100644 Assets/Enemies/Scripts/Attacks/AttackRange.cs create mode 100644 Assets/Enemies/Scripts/Attacks/AttackRange.cs.meta diff --git a/Assets/Enemies/Enemies/FirstEnemy.meta b/Assets/Enemies/Enemies/FirstEnemy.meta new file mode 100644 index 0000000..31a0373 --- /dev/null +++ b/Assets/Enemies/Enemies/FirstEnemy.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3fba4d9ec7cc4684e9c7d206bb413837 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Enemies/Enemies/FirstEnemy/Animations.meta b/Assets/Enemies/Enemies/FirstEnemy/Animations.meta new file mode 100644 index 0000000..feb05ce --- /dev/null +++ b/Assets/Enemies/Enemies/FirstEnemy/Animations.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8de3148d8c6c36d4d94938389f0a112e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Enemies/Enemies/FirstEnemy/Animations/Attack.anim b/Assets/Enemies/Enemies/FirstEnemy/Animations/Attack.anim new file mode 100644 index 0000000..6a950e2 --- /dev/null +++ b/Assets/Enemies/Enemies/FirstEnemy/Animations/Attack.anim @@ -0,0 +1,53 @@ +%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: Attack + 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: [] + 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: [] + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 1 + 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/Enemies/Enemies/FirstEnemy/Animations/Attack.anim.meta b/Assets/Enemies/Enemies/FirstEnemy/Animations/Attack.anim.meta new file mode 100644 index 0000000..37d56b5 --- /dev/null +++ b/Assets/Enemies/Enemies/FirstEnemy/Animations/Attack.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1b99f4de7ddae134f9a5025873e4a6b8 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Enemies/Enemies/FirstEnemy/Animations/Die.anim b/Assets/Enemies/Enemies/FirstEnemy/Animations/Die.anim new file mode 100644 index 0000000..a98d88c --- /dev/null +++ b/Assets/Enemies/Enemies/FirstEnemy/Animations/Die.anim @@ -0,0 +1,68 @@ +%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: Die + 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: -889375371, guid: 2d5e3a83f95fd5d43ac6cda1acf17aee, 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: -889375371, guid: 2d5e3a83f95fd5d43ac6cda1acf17aee, 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: 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/Enemies/Enemies/FirstEnemy/Animations/Die.anim.meta b/Assets/Enemies/Enemies/FirstEnemy/Animations/Die.anim.meta new file mode 100644 index 0000000..a12092f --- /dev/null +++ b/Assets/Enemies/Enemies/FirstEnemy/Animations/Die.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 17d151a90a078a342ba31df6412aafa0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Enemies/Enemies/FirstEnemy/Animations/UsualEnemy.controller b/Assets/Enemies/Enemies/FirstEnemy/Animations/UsualEnemy.controller new file mode 100644 index 0000000..d97a894 --- /dev/null +++ b/Assets/Enemies/Enemies/FirstEnemy/Animations/UsualEnemy.controller @@ -0,0 +1,217 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1102 &-7266938796984961159 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Die + 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: 17d151a90a078a342ba31df6412aafa0, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &-5495440772653595673 +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: Die + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -7266938796984961159} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0.63414633 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1107 &-5139434715830223189 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Base Layer + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 4653501528613171178} + m_Position: {x: 300, y: 120, z: 0} + - serializedVersion: 1 + m_State: {fileID: -7266938796984961159} + m_Position: {x: 310, y: 220, z: 0} + - serializedVersion: 1 + m_State: {fileID: -3253507032739876015} + m_Position: {x: 300, y: 20, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 4653501528613171178} +--- !u!1102 &-3253507032739876015 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Attack + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 3558637664719945286} + 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: 1b99f4de7ddae134f9a5025873e4a6b8, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: UsualEnemy + serializedVersion: 5 + m_AnimatorParameters: + - m_Name: Die + m_Type: 9 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + - m_Name: Attack + 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: -5139434715830223189} + 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!1101 &3216377058792839915 +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: Attack + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -3253507032739876015} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0.63414633 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &3558637664719945286 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 4653501528613171178} + 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!1102 &4653501528613171178 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Walk + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -5495440772653595673} + - {fileID: 3216377058792839915} + 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: 978a9d81217999342baefbdfd5dd0358, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: diff --git a/Assets/Enemies/Enemies/FirstEnemy/Animations/UsualEnemy.controller.meta b/Assets/Enemies/Enemies/FirstEnemy/Animations/UsualEnemy.controller.meta new file mode 100644 index 0000000..bdc2010 --- /dev/null +++ b/Assets/Enemies/Enemies/FirstEnemy/Animations/UsualEnemy.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2459cfbe460c1754ab792da0c4a50ff6 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Enemies/Enemies/FirstEnemy/Animations/Walk.anim b/Assets/Enemies/Enemies/FirstEnemy/Animations/Walk.anim new file mode 100644 index 0000000..fbe9a30 --- /dev/null +++ b/Assets/Enemies/Enemies/FirstEnemy/Animations/Walk.anim @@ -0,0 +1,74 @@ +%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: Walk + 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: -310729417, guid: 2d5e3a83f95fd5d43ac6cda1acf17aee, type: 3} + - time: 0.33333334 + value: {fileID: 629391732, guid: 2d5e3a83f95fd5d43ac6cda1acf17aee, type: 3} + - time: 0.6666667 + value: {fileID: -310729417, guid: 2d5e3a83f95fd5d43ac6cda1acf17aee, 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: -310729417, guid: 2d5e3a83f95fd5d43ac6cda1acf17aee, type: 3} + - {fileID: 629391732, guid: 2d5e3a83f95fd5d43ac6cda1acf17aee, type: 3} + - {fileID: -310729417, guid: 2d5e3a83f95fd5d43ac6cda1acf17aee, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.68333334 + 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/Enemies/Enemies/FirstEnemy/Animations/Walk.anim.meta b/Assets/Enemies/Enemies/FirstEnemy/Animations/Walk.anim.meta new file mode 100644 index 0000000..8ec74fb --- /dev/null +++ b/Assets/Enemies/Enemies/FirstEnemy/Animations/Walk.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 978a9d81217999342baefbdfd5dd0358 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Enemies/Enemies/FirstEnemy.asset b/Assets/Enemies/Enemies/FirstEnemy/FirstEnemy.asset similarity index 100% rename from Assets/Enemies/Enemies/FirstEnemy.asset rename to Assets/Enemies/Enemies/FirstEnemy/FirstEnemy.asset diff --git a/Assets/Enemies/Enemies/FirstEnemy.asset.meta b/Assets/Enemies/Enemies/FirstEnemy/FirstEnemy.asset.meta similarity index 100% rename from Assets/Enemies/Enemies/FirstEnemy.asset.meta rename to Assets/Enemies/Enemies/FirstEnemy/FirstEnemy.asset.meta diff --git a/Assets/Enemies/Scripts/AbstractClasses/Enemy.cs b/Assets/Enemies/Scripts/AbstractClasses/Enemy.cs index 009bd28..9f3f2ab 100644 --- a/Assets/Enemies/Scripts/AbstractClasses/Enemy.cs +++ b/Assets/Enemies/Scripts/AbstractClasses/Enemy.cs @@ -20,6 +20,11 @@ namespace Enemies } protected abstract void Move(); protected abstract void Attack(); + + public virtual void InRange() + { + Attack(); + } protected abstract void Die(); public int ApplyDamage(int power) { diff --git a/Assets/Enemies/Scripts/Attacks.meta b/Assets/Enemies/Scripts/Attacks.meta new file mode 100644 index 0000000..aca79d3 --- /dev/null +++ b/Assets/Enemies/Scripts/Attacks.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 00cf117c6de4b5c4ab01db567f892c48 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Enemies/Scripts/Attacks/AttackRange.cs b/Assets/Enemies/Scripts/Attacks/AttackRange.cs new file mode 100644 index 0000000..d4b90d3 --- /dev/null +++ b/Assets/Enemies/Scripts/Attacks/AttackRange.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +namespace Enemies +{ + + public class AttackRange : MonoBehaviour + { + [SerializeField] Enemy _enemyScript; + void OnTriggerEnter(Collider other) + { + if (other.gameObject.CompareTag("Player")) + { + _enemyScript.InRange(); + } + } + } +} diff --git a/Assets/Enemies/Scripts/Attacks/AttackRange.cs.meta b/Assets/Enemies/Scripts/Attacks/AttackRange.cs.meta new file mode 100644 index 0000000..ae7e008 --- /dev/null +++ b/Assets/Enemies/Scripts/Attacks/AttackRange.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 686bd097f9176b7469189d0b5e47baac +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Enemies/Scripts/Data/EnemyData.cs b/Assets/Enemies/Scripts/Data/EnemyData.cs index 075cc70..a5dd3f9 100644 --- a/Assets/Enemies/Scripts/Data/EnemyData.cs +++ b/Assets/Enemies/Scripts/Data/EnemyData.cs @@ -13,7 +13,5 @@ namespace Enemies [Header("Attack")] public float attackRange; public int attackPower; - [Header("Visuals")] - public Sprite spriteIdle; } } diff --git a/Assets/Enemies/Scripts/Enemies/UsualEnemy.cs b/Assets/Enemies/Scripts/Enemies/UsualEnemy.cs index e7c52fb..3f8a636 100644 --- a/Assets/Enemies/Scripts/Enemies/UsualEnemy.cs +++ b/Assets/Enemies/Scripts/Enemies/UsualEnemy.cs @@ -8,14 +8,10 @@ namespace Enemies { SpriteRenderer _spriteRenderer; - protected override void Attack() - { - throw new System.NotImplementedException(); - } - - protected override void Die() + protected override void Start() { - throw new System.NotImplementedException(); + base.Start(); + _spriteRenderer = GetComponent<SpriteRenderer>(); } protected override void Move() @@ -24,11 +20,15 @@ namespace Enemies _spriteRenderer.flipX = transform.position.x < playerTransform.position.x; } - protected override void Start() + protected override void Attack() { - base.Start(); - _spriteRenderer = GetComponent<SpriteRenderer>(); - _spriteRenderer.sprite = enemyData.spriteIdle; + } + + protected override void Die() + { + Destroy(gameObject); + } + } } diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index 4cccfde..56f74d4 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -567,6 +567,8 @@ GameObject: - component: {fileID: 1703298695} - component: {fileID: 1703298696} - component: {fileID: 1703298697} + - component: {fileID: 1703298698} + - component: {fileID: 1703298699} m_Layer: 0 m_Name: UsualEnemy m_TagString: Untagged @@ -671,6 +673,122 @@ CapsuleCollider2D: m_Offset: {x: 0.10345328, y: -0.064658225} m_Size: {x: 0.6379137, y: 1.4914027} m_Direction: 0 +--- !u!95 &1703298698 +Animator: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1703298692} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: 2459cfbe460c1754ab792da0c4a50ff6, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorControllerStateOnDisable: 0 +--- !u!82 &1703298699 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1703298692} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 0} + m_PlayOnAwake: 1 + m_Volume: 1 + m_Pitch: 1 + Loop: 0 + Mute: 0 + Spatialize: 0 + SpatializePostEffects: 0 + Priority: 128 + DopplerLevel: 1 + MinDistance: 1 + MaxDistance: 500 + Pan2D: 0 + rolloffMode: 0 + BypassEffects: 0 + BypassListenerEffects: 0 + BypassReverbZones: 0 + rolloffCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 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!1 &1771414120 GameObject: m_ObjectHideFlags: 0 -- GitLab From 2cf1d4bac43f111d2d46fa91906998e2f6c5c223 Mon Sep 17 00:00:00 2001 From: Dmitriy Makarov <dimamakarov1941@yandex.ru> Date: Sat, 15 Oct 2022 18:44:14 +0300 Subject: [PATCH 4/7] add enemy tag --- .../Enemies/FirstEnemy/Animations/Walk.anim | 6 +- .../Enemies/Scripts/AbstractClasses/Enemy.cs | 5 +- Assets/Enemies/Scripts/Attacks/AttackRange.cs | 2 +- Assets/Enemies/Scripts/Enemies/UsualEnemy.cs | 10 ++- Assets/Scenes/SampleScene.unity | 76 +++++++++++++++++-- ProjectSettings/TagManager.asset | 4 +- 6 files changed, 86 insertions(+), 17 deletions(-) diff --git a/Assets/Enemies/Enemies/FirstEnemy/Animations/Walk.anim b/Assets/Enemies/Enemies/FirstEnemy/Animations/Walk.anim index fbe9a30..6f36136 100644 --- a/Assets/Enemies/Enemies/FirstEnemy/Animations/Walk.anim +++ b/Assets/Enemies/Enemies/FirstEnemy/Animations/Walk.anim @@ -21,9 +21,9 @@ AnimationClip: - curve: - time: 0 value: {fileID: -310729417, guid: 2d5e3a83f95fd5d43ac6cda1acf17aee, type: 3} - - time: 0.33333334 + - time: 0.16666667 value: {fileID: 629391732, guid: 2d5e3a83f95fd5d43ac6cda1acf17aee, type: 3} - - time: 0.6666667 + - time: 0.33333334 value: {fileID: -310729417, guid: 2d5e3a83f95fd5d43ac6cda1acf17aee, type: 3} attribute: m_Sprite path: @@ -52,7 +52,7 @@ AnimationClip: m_AdditiveReferencePoseClip: {fileID: 0} m_AdditiveReferencePoseTime: 0 m_StartTime: 0 - m_StopTime: 0.68333334 + m_StopTime: 0.35000002 m_OrientationOffsetY: 0 m_Level: 0 m_CycleOffset: 0 diff --git a/Assets/Enemies/Scripts/AbstractClasses/Enemy.cs b/Assets/Enemies/Scripts/AbstractClasses/Enemy.cs index 9f3f2ab..adbf84e 100644 --- a/Assets/Enemies/Scripts/AbstractClasses/Enemy.cs +++ b/Assets/Enemies/Scripts/AbstractClasses/Enemy.cs @@ -23,7 +23,10 @@ namespace Enemies public virtual void InRange() { - Attack(); + if (!_stunned) + { + Attack(); + } } protected abstract void Die(); public int ApplyDamage(int power) diff --git a/Assets/Enemies/Scripts/Attacks/AttackRange.cs b/Assets/Enemies/Scripts/Attacks/AttackRange.cs index d4b90d3..991a70e 100644 --- a/Assets/Enemies/Scripts/Attacks/AttackRange.cs +++ b/Assets/Enemies/Scripts/Attacks/AttackRange.cs @@ -7,7 +7,7 @@ namespace Enemies public class AttackRange : MonoBehaviour { [SerializeField] Enemy _enemyScript; - void OnTriggerEnter(Collider other) + private void OnCollisionEnter2D(Collision2D other) { if (other.gameObject.CompareTag("Player")) { diff --git a/Assets/Enemies/Scripts/Enemies/UsualEnemy.cs b/Assets/Enemies/Scripts/Enemies/UsualEnemy.cs index 3f8a636..dde3a0d 100644 --- a/Assets/Enemies/Scripts/Enemies/UsualEnemy.cs +++ b/Assets/Enemies/Scripts/Enemies/UsualEnemy.cs @@ -7,11 +7,13 @@ namespace Enemies public class UsualEnemy : Enemy { SpriteRenderer _spriteRenderer; - + Animator _animator; + public float timeToDie = 1f; protected override void Start() { base.Start(); _spriteRenderer = GetComponent<SpriteRenderer>(); + _animator = GetComponent<Animator>(); } protected override void Move() @@ -22,13 +24,13 @@ namespace Enemies protected override void Attack() { - + print("Attack"); } protected override void Die() { - Destroy(gameObject); + _animator.SetTrigger("Die"); + Destroy(gameObject, timeToDie); } - } } diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index 56f74d4..f759f16 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -405,6 +405,54 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1252174252 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1252174253} + - component: {fileID: 1252174254} + m_Layer: 0 + m_Name: AttackIndicator + m_TagString: Enemy + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1252174253 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1252174252} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1703298694} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!70 &1252174254 +CapsuleCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1252174252} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0.012567639, y: -0.06283742} + m_Size: {x: 1.0781043, y: 1.7791835} + m_Direction: 0 --- !u!1 &1409384834 GameObject: m_ObjectHideFlags: 0 @@ -501,7 +549,7 @@ CircleCollider2D: m_Enabled: 1 m_Density: 1 m_Material: {fileID: 0} - m_IsTrigger: 0 + m_IsTrigger: 1 m_UsedByEffector: 0 m_UsedByComposite: 0 m_Offset: {x: 0, y: 0} @@ -517,9 +565,10 @@ GameObject: m_Component: - component: {fileID: 1624989162} - component: {fileID: 1624989163} + - component: {fileID: 1624989164} m_Layer: 0 m_Name: AttackRange - m_TagString: Untagged + m_TagString: Enemy m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 @@ -532,7 +581,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1624989161} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: -0.13, y: 0.2, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -552,9 +601,22 @@ CapsuleCollider2D: m_IsTrigger: 1 m_UsedByEffector: 0 m_UsedByComposite: 0 - m_Offset: {x: -0.55606115, y: 0.19397485} - m_Size: {x: 0.83622336, y: 1.594856} + m_Offset: {x: -0.4083022, y: 0.19397485} + m_Size: {x: 0.54070544, y: 1.594856} m_Direction: 0 +--- !u!114 &1624989164 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1624989161} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 686bd097f9176b7469189d0b5e47baac, type: 3} + m_Name: + m_EditorClassIdentifier: + _enemyScript: {fileID: 1703298696} --- !u!1 &1703298692 GameObject: m_ObjectHideFlags: 0 @@ -571,7 +633,7 @@ GameObject: - component: {fileID: 1703298699} m_Layer: 0 m_Name: UsualEnemy - m_TagString: Untagged + m_TagString: Enemy m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 @@ -589,6 +651,7 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1624989162} + - {fileID: 1252174253} m_Father: {fileID: 0} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -657,6 +720,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: enemyData: {fileID: 11400000, guid: a9f183e580e81ce42b49eb5979490515, type: 2} + timeToDie: 1 --- !u!70 &1703298697 CapsuleCollider2D: m_ObjectHideFlags: 0 diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index 4b69f59..5aa3f5f 100644 --- a/ProjectSettings/TagManager.asset +++ b/ProjectSettings/TagManager.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8e18b1c820e9c09e16bbd1f1b7842e9fb3b0158a0921b0964e0b8fa12c6e2c01 -size 378 +oid sha256:f14dc3f00598c3a56e08f664c947e8efb5f8a458feaa14ab258b1cfd2d0097f3 +size 385 -- GitLab From a00d0face22eb8a3bd80925092417f569826cc8d Mon Sep 17 00:00:00 2001 From: Dmitriy Makarov <dimamakarov1941@yandex.ru> Date: Sat, 15 Oct 2022 18:49:20 +0300 Subject: [PATCH 5/7] fix attack --- Assets/Enemies/Scripts/Attacks/AttackRange.cs | 5 ++- Assets/Scenes/SampleScene.unity | 44 +++++++++++++++++++ 2 files changed, 47 insertions(+), 2 deletions(-) diff --git a/Assets/Enemies/Scripts/Attacks/AttackRange.cs b/Assets/Enemies/Scripts/Attacks/AttackRange.cs index 991a70e..5b01a40 100644 --- a/Assets/Enemies/Scripts/Attacks/AttackRange.cs +++ b/Assets/Enemies/Scripts/Attacks/AttackRange.cs @@ -7,9 +7,10 @@ namespace Enemies public class AttackRange : MonoBehaviour { [SerializeField] Enemy _enemyScript; - private void OnCollisionEnter2D(Collision2D other) + private void OnTriggerEnter2D(Collider2D collision) { - if (other.gameObject.CompareTag("Player")) + Debug.Log("Collision" + collision.gameObject.tag); + if (collision.gameObject.CompareTag("Player")) { _enemyScript.InRange(); } diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index f759f16..1be15b2 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -464,6 +464,7 @@ GameObject: - component: {fileID: 1409384836} - component: {fileID: 1409384835} - component: {fileID: 1409384837} + - component: {fileID: 1409384838} m_Layer: 0 m_Name: StupidPlayer m_TagString: Player @@ -555,6 +556,27 @@ CircleCollider2D: m_Offset: {x: 0, y: 0} serializedVersion: 2 m_Radius: 0.5 +--- !u!50 &1409384838 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1409384834} + m_BodyType: 1 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDrag: 0 + m_AngularDrag: 0.05 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 --- !u!1 &1624989161 GameObject: m_ObjectHideFlags: 0 @@ -631,6 +653,7 @@ GameObject: - component: {fileID: 1703298697} - component: {fileID: 1703298698} - component: {fileID: 1703298699} + - component: {fileID: 1703298700} m_Layer: 0 m_Name: UsualEnemy m_TagString: Enemy @@ -853,6 +876,27 @@ AudioSource: m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 +--- !u!50 &1703298700 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1703298692} + m_BodyType: 1 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDrag: 0 + m_AngularDrag: 0.05 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 --- !u!1 &1771414120 GameObject: m_ObjectHideFlags: 0 -- GitLab From bdb803e832bc854fb3c5e4cecc03a35ea020f3f5 Mon Sep 17 00:00:00 2001 From: Dmitriy Makarov <dimamakarov1941@yandex.ru> Date: Sat, 15 Oct 2022 18:59:33 +0300 Subject: [PATCH 6/7] think about apply damage --- Assets/Enemies/Prefabs/UsualEnemy.prefab | 370 +++++++++++++++ Assets/Enemies/Prefabs/UsualEnemy.prefab.meta | 7 + .../Enemies/Scripts/AbstractClasses/Enemy.cs | 27 +- Assets/Enemies/Scripts/Enemies/UsualEnemy.cs | 2 +- Assets/Enemies/Scripts/Interfaces/Ienemy.cs | 1 + Assets/Scenes/SampleScene.unity | 443 +++--------------- 6 files changed, 473 insertions(+), 377 deletions(-) create mode 100644 Assets/Enemies/Prefabs/UsualEnemy.prefab create mode 100644 Assets/Enemies/Prefabs/UsualEnemy.prefab.meta diff --git a/Assets/Enemies/Prefabs/UsualEnemy.prefab b/Assets/Enemies/Prefabs/UsualEnemy.prefab new file mode 100644 index 0000000..25e68f0 --- /dev/null +++ b/Assets/Enemies/Prefabs/UsualEnemy.prefab @@ -0,0 +1,370 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2270476185090606395 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2270476185090606392} + - component: {fileID: 2270476185090606393} + - component: {fileID: 2270476185090606398} + m_Layer: 0 + m_Name: AttackRange + m_TagString: Enemy + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2270476185090606392 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2270476185090606395} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.13, y: 0.2, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2270476185136946772} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!70 &2270476185090606393 +CapsuleCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2270476185090606395} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: -0.4083022, y: 0.19397485} + m_Size: {x: 0.54070544, y: 1.594856} + m_Direction: 0 +--- !u!114 &2270476185090606398 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2270476185090606395} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 686bd097f9176b7469189d0b5e47baac, type: 3} + m_Name: + m_EditorClassIdentifier: + _enemyScript: {fileID: 2270476185136946778} +--- !u!1 &2270476185136946774 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2270476185136946772} + - component: {fileID: 2270476185136946773} + - component: {fileID: 2270476185136946778} + - component: {fileID: 2270476185136946779} + - component: {fileID: 2270476185136946776} + - component: {fileID: 2270476185136946777} + - component: {fileID: 2270476185136946782} + m_Layer: 0 + m_Name: UsualEnemy + m_TagString: Enemy + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2270476185136946772 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2270476185136946774} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.51, y: -0.21444988, z: 0.038454056} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2270476185090606392} + - {fileID: 2270476185726529919} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &2270476185136946773 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2270476185136946774} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -310729417, guid: 2d5e3a83f95fd5d43ac6cda1acf17aee, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!114 &2270476185136946778 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2270476185136946774} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56d6b620f13b6d94688a58625d0382d2, type: 3} + m_Name: + m_EditorClassIdentifier: + enemyData: {fileID: 11400000, guid: a9f183e580e81ce42b49eb5979490515, type: 2} + timeToDie: 1 +--- !u!70 &2270476185136946779 +CapsuleCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2270476185136946774} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0.10345328, y: -0.064658225} + m_Size: {x: 0.6379137, y: 1.4914027} + m_Direction: 0 +--- !u!95 &2270476185136946776 +Animator: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2270476185136946774} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: 2459cfbe460c1754ab792da0c4a50ff6, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorControllerStateOnDisable: 0 +--- !u!82 &2270476185136946777 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2270476185136946774} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 0} + m_PlayOnAwake: 1 + m_Volume: 1 + m_Pitch: 1 + Loop: 0 + Mute: 0 + Spatialize: 0 + SpatializePostEffects: 0 + Priority: 128 + DopplerLevel: 1 + MinDistance: 1 + MaxDistance: 500 + Pan2D: 0 + rolloffMode: 0 + BypassEffects: 0 + BypassListenerEffects: 0 + BypassReverbZones: 0 + rolloffCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 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!50 &2270476185136946782 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2270476185136946774} + m_BodyType: 1 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDrag: 0 + m_AngularDrag: 0.05 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!1 &2270476185726529918 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2270476185726529919} + - component: {fileID: 2270476185726529916} + m_Layer: 0 + m_Name: AttackIndicator + m_TagString: Enemy + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2270476185726529919 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2270476185726529918} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2270476185136946772} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!70 &2270476185726529916 +CapsuleCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2270476185726529918} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0.012567639, y: -0.06283742} + m_Size: {x: 1.0781043, y: 1.7791835} + m_Direction: 0 diff --git a/Assets/Enemies/Prefabs/UsualEnemy.prefab.meta b/Assets/Enemies/Prefabs/UsualEnemy.prefab.meta new file mode 100644 index 0000000..f449acc --- /dev/null +++ b/Assets/Enemies/Prefabs/UsualEnemy.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 69bf619d7a0c6694baaf2e84dfbdf015 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Enemies/Scripts/AbstractClasses/Enemy.cs b/Assets/Enemies/Scripts/AbstractClasses/Enemy.cs index adbf84e..0ef120c 100644 --- a/Assets/Enemies/Scripts/AbstractClasses/Enemy.cs +++ b/Assets/Enemies/Scripts/AbstractClasses/Enemy.cs @@ -4,26 +4,24 @@ namespace Enemies [RequireComponent(typeof(SpriteRenderer))] public abstract class Enemy : MonoBehaviour, IEnemy { - [SerializeField] protected EnemyData enemyData; + [SerializeField] private EnemyData _enemyData; protected Transform playerTransform; - bool _stunned = false; + public bool Stunned { get; } = false; + protected virtual void Start() { playerTransform = GameObject.FindGameObjectWithTag("Player").transform; } protected virtual void FixedUpdate() { - if (!_stunned) - { - Move(); - } + Move(); } protected abstract void Move(); protected abstract void Attack(); public virtual void InRange() { - if (!_stunned) + if (!Stunned) { Attack(); } @@ -31,8 +29,21 @@ namespace Enemies protected abstract void Die(); public int ApplyDamage(int power) { + _enemyData.health -= power; + if (_enemyData.health <= 0) + { + Die(); + } + // var newPower -= _enemyData.health; return power; } - public bool Stunned => _stunned; + protected int GetHealth() + { + return Stunned ? 0 : _enemyData.health + _enemyData.armory; + } + protected float GetSpeed() + { + return Stunned ? 0 : _enemyData.speed; + } } } diff --git a/Assets/Enemies/Scripts/Enemies/UsualEnemy.cs b/Assets/Enemies/Scripts/Enemies/UsualEnemy.cs index dde3a0d..6a1dcf3 100644 --- a/Assets/Enemies/Scripts/Enemies/UsualEnemy.cs +++ b/Assets/Enemies/Scripts/Enemies/UsualEnemy.cs @@ -18,7 +18,7 @@ namespace Enemies protected override void Move() { - transform.position = Vector2.MoveTowards(transform.position, playerTransform.position, enemyData.speed * Time.fixedDeltaTime); + transform.position = Vector2.MoveTowards(transform.position, playerTransform.position, GetSpeed() * Time.fixedDeltaTime); _spriteRenderer.flipX = transform.position.x < playerTransform.position.x; } diff --git a/Assets/Enemies/Scripts/Interfaces/Ienemy.cs b/Assets/Enemies/Scripts/Interfaces/Ienemy.cs index 5a6beb7..9c26b42 100644 --- a/Assets/Enemies/Scripts/Interfaces/Ienemy.cs +++ b/Assets/Enemies/Scripts/Interfaces/Ienemy.cs @@ -11,4 +11,5 @@ public interface IEnemy private void Die() { } + public int ApplyDamage(int power); } diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index 1be15b2..eba625d 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -405,54 +405,6 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1252174252 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1252174253} - - component: {fileID: 1252174254} - m_Layer: 0 - m_Name: AttackIndicator - m_TagString: Enemy - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1252174253 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1252174252} - 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_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1703298694} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!70 &1252174254 -CapsuleCollider2D: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1252174252} - m_Enabled: 1 - m_Density: 1 - m_Material: {fileID: 0} - m_IsTrigger: 1 - m_UsedByEffector: 0 - m_UsedByComposite: 0 - m_Offset: {x: 0.012567639, y: -0.06283742} - m_Size: {x: 1.0781043, y: 1.7791835} - m_Direction: 0 --- !u!1 &1409384834 GameObject: m_ObjectHideFlags: 0 @@ -577,326 +529,6 @@ Rigidbody2D: m_SleepingMode: 1 m_CollisionDetection: 0 m_Constraints: 0 ---- !u!1 &1624989161 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1624989162} - - component: {fileID: 1624989163} - - component: {fileID: 1624989164} - m_Layer: 0 - m_Name: AttackRange - m_TagString: Enemy - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1624989162 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1624989161} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -0.13, y: 0.2, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1703298694} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!70 &1624989163 -CapsuleCollider2D: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1624989161} - m_Enabled: 1 - m_Density: 1 - m_Material: {fileID: 0} - m_IsTrigger: 1 - m_UsedByEffector: 0 - m_UsedByComposite: 0 - m_Offset: {x: -0.4083022, y: 0.19397485} - m_Size: {x: 0.54070544, y: 1.594856} - m_Direction: 0 ---- !u!114 &1624989164 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1624989161} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 686bd097f9176b7469189d0b5e47baac, type: 3} - m_Name: - m_EditorClassIdentifier: - _enemyScript: {fileID: 1703298696} ---- !u!1 &1703298692 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1703298694} - - component: {fileID: 1703298695} - - component: {fileID: 1703298696} - - component: {fileID: 1703298697} - - component: {fileID: 1703298698} - - component: {fileID: 1703298699} - - component: {fileID: 1703298700} - m_Layer: 0 - m_Name: UsualEnemy - m_TagString: Enemy - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1703298694 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1703298692} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 1.51, y: -0.21444988, z: 0.038454056} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1624989162} - - {fileID: 1252174253} - m_Father: {fileID: 0} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!212 &1703298695 -SpriteRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1703298692} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 0 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 0 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_Sprite: {fileID: -310729417, guid: 2d5e3a83f95fd5d43ac6cda1acf17aee, type: 3} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_FlipX: 0 - m_FlipY: 0 - m_DrawMode: 0 - m_Size: {x: 1, y: 1} - m_AdaptiveModeThreshold: 0.5 - m_SpriteTileMode: 0 - m_WasSpriteAssigned: 1 - m_MaskInteraction: 0 - m_SpriteSortPoint: 0 ---- !u!114 &1703298696 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1703298692} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 56d6b620f13b6d94688a58625d0382d2, type: 3} - m_Name: - m_EditorClassIdentifier: - enemyData: {fileID: 11400000, guid: a9f183e580e81ce42b49eb5979490515, type: 2} - timeToDie: 1 ---- !u!70 &1703298697 -CapsuleCollider2D: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1703298692} - m_Enabled: 1 - m_Density: 1 - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_UsedByEffector: 0 - m_UsedByComposite: 0 - m_Offset: {x: 0.10345328, y: -0.064658225} - m_Size: {x: 0.6379137, y: 1.4914027} - m_Direction: 0 ---- !u!95 &1703298698 -Animator: - serializedVersion: 4 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1703298692} - m_Enabled: 1 - m_Avatar: {fileID: 0} - m_Controller: {fileID: 9100000, guid: 2459cfbe460c1754ab792da0c4a50ff6, type: 2} - m_CullingMode: 0 - m_UpdateMode: 0 - m_ApplyRootMotion: 0 - m_LinearVelocityBlending: 0 - m_StabilizeFeet: 0 - m_WarningMessage: - m_HasTransformHierarchy: 1 - m_AllowConstantClipSamplingOptimization: 1 - m_KeepAnimatorControllerStateOnDisable: 0 ---- !u!82 &1703298699 -AudioSource: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1703298692} - m_Enabled: 1 - serializedVersion: 4 - OutputAudioMixerGroup: {fileID: 0} - m_audioClip: {fileID: 0} - m_PlayOnAwake: 1 - m_Volume: 1 - m_Pitch: 1 - Loop: 0 - Mute: 0 - Spatialize: 0 - SpatializePostEffects: 0 - Priority: 128 - DopplerLevel: 1 - MinDistance: 1 - MaxDistance: 500 - Pan2D: 0 - rolloffMode: 0 - BypassEffects: 0 - BypassListenerEffects: 0 - BypassReverbZones: 0 - rolloffCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 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!50 &1703298700 -Rigidbody2D: - serializedVersion: 4 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1703298692} - m_BodyType: 1 - m_Simulated: 1 - m_UseFullKinematicContacts: 0 - m_UseAutoMass: 0 - m_Mass: 1 - m_LinearDrag: 0 - m_AngularDrag: 0.05 - m_GravityScale: 1 - m_Material: {fileID: 0} - m_Interpolate: 0 - m_SleepingMode: 1 - m_CollisionDetection: 0 - m_Constraints: 0 --- !u!1 &1771414120 GameObject: m_ObjectHideFlags: 0 @@ -981,3 +613,78 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &2270476186705729746 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 2270476185136946772, guid: 69bf619d7a0c6694baaf2e84dfbdf015, + type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 2270476185136946772, guid: 69bf619d7a0c6694baaf2e84dfbdf015, + type: 3} + propertyPath: m_LocalPosition.x + value: 1.51 + objectReference: {fileID: 0} + - target: {fileID: 2270476185136946772, guid: 69bf619d7a0c6694baaf2e84dfbdf015, + type: 3} + propertyPath: m_LocalPosition.y + value: -0.21444988 + objectReference: {fileID: 0} + - target: {fileID: 2270476185136946772, guid: 69bf619d7a0c6694baaf2e84dfbdf015, + type: 3} + propertyPath: m_LocalPosition.z + value: 0.038454056 + objectReference: {fileID: 0} + - target: {fileID: 2270476185136946772, guid: 69bf619d7a0c6694baaf2e84dfbdf015, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2270476185136946772, guid: 69bf619d7a0c6694baaf2e84dfbdf015, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2270476185136946772, guid: 69bf619d7a0c6694baaf2e84dfbdf015, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2270476185136946772, guid: 69bf619d7a0c6694baaf2e84dfbdf015, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2270476185136946772, guid: 69bf619d7a0c6694baaf2e84dfbdf015, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2270476185136946772, guid: 69bf619d7a0c6694baaf2e84dfbdf015, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2270476185136946772, guid: 69bf619d7a0c6694baaf2e84dfbdf015, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2270476185136946774, guid: 69bf619d7a0c6694baaf2e84dfbdf015, + type: 3} + propertyPath: m_Name + value: UsualEnemy + objectReference: {fileID: 0} + - target: {fileID: 2270476185136946778, guid: 69bf619d7a0c6694baaf2e84dfbdf015, + type: 3} + propertyPath: _enemyData + value: + objectReference: {fileID: 11400000, guid: a9f183e580e81ce42b49eb5979490515, + type: 2} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 69bf619d7a0c6694baaf2e84dfbdf015, type: 3} -- GitLab From da4c8548b6a19479e6567f1e9b52c67bdac396c7 Mon Sep 17 00:00:00 2001 From: Dmitriy Makarov <dimamakarov1941@yandex.ru> Date: Sat, 15 Oct 2022 19:01:34 +0300 Subject: [PATCH 7/7] fix method enemyapplid --- Assets/Enemies/Scripts/AbstractClasses/Enemy.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Assets/Enemies/Scripts/AbstractClasses/Enemy.cs b/Assets/Enemies/Scripts/AbstractClasses/Enemy.cs index 0ef120c..b625042 100644 --- a/Assets/Enemies/Scripts/AbstractClasses/Enemy.cs +++ b/Assets/Enemies/Scripts/AbstractClasses/Enemy.cs @@ -29,13 +29,13 @@ namespace Enemies protected abstract void Die(); public int ApplyDamage(int power) { + var newPower = power - _enemyData.health; _enemyData.health -= power; if (_enemyData.health <= 0) { Die(); } - // var newPower -= _enemyData.health; - return power; + return newPower; } protected int GetHealth() { -- GitLab