From 56592fa7ad5086c82769ab610085f5cfce6efd65 Mon Sep 17 00:00:00 2001 From: Gabriel Kaszewski Date: Sat, 12 Jul 2025 14:25:46 +0200 Subject: [PATCH] Add Basic Enemy prefab and Chaser AI; update enemy spawn settings and projectile speed --- Assets/Data/Waves/Basic Wave.asset | 2 +- Assets/Prefabs/Enemies/Basic Enemy.prefab | 428 ++++++++++++++++++ .../Prefabs/Enemies/Basic Enemy.prefab.meta | 7 + .../Prefabs/Weapons/PistolProjectile.prefab | 2 +- Assets/Scenes/main.unity | 209 ++++++++- Assets/Scripts/AI.meta | 3 + Assets/Scripts/AI/Chaser.cs | 39 ++ Assets/Scripts/AI/Chaser.cs.meta | 3 + 8 files changed, 688 insertions(+), 5 deletions(-) create mode 100644 Assets/Prefabs/Enemies/Basic Enemy.prefab create mode 100644 Assets/Prefabs/Enemies/Basic Enemy.prefab.meta create mode 100644 Assets/Scripts/AI.meta create mode 100644 Assets/Scripts/AI/Chaser.cs create mode 100644 Assets/Scripts/AI/Chaser.cs.meta diff --git a/Assets/Data/Waves/Basic Wave.asset b/Assets/Data/Waves/Basic Wave.asset index a868efa..c3ce7c3 100644 --- a/Assets/Data/Waves/Basic Wave.asset +++ b/Assets/Data/Waves/Basic Wave.asset @@ -13,6 +13,6 @@ MonoBehaviour: m_Name: Basic Wave m_EditorClassIdentifier: spawns: - - enemyPrefab: {fileID: 7086213802762404816, guid: c29b6821cd98a1968b14fa55dc11ff9d, type: 3} + - enemyPrefab: {fileID: 204632724861940951, guid: d5225fe09f2ee0168b3a40e21948820a, type: 3} count: 12 spawnInterval: 0.5 diff --git a/Assets/Prefabs/Enemies/Basic Enemy.prefab b/Assets/Prefabs/Enemies/Basic Enemy.prefab new file mode 100644 index 0000000..1b115c8 --- /dev/null +++ b/Assets/Prefabs/Enemies/Basic Enemy.prefab @@ -0,0 +1,428 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &204632724861940951 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8982578637896279064} + - component: {fileID: 6106641039752435111} + - component: {fileID: 7019269918067109340} + - component: {fileID: 3298396436480561959} + - component: {fileID: 9093693903318130491} + - component: {fileID: 3179741077809616033} + - component: {fileID: 2885408193262179595} + - component: {fileID: 9133510821041460886} + - component: {fileID: 4043203721006489305} + - component: {fileID: 9197488311964383076} + - component: {fileID: 2964327480768693548} + - component: {fileID: 435001957072118475} + - component: {fileID: 1527323237162929931} + m_Layer: 0 + m_Name: Basic Enemy + m_TagString: Enemy + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8982578637896279064 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 204632724861940951} + serializedVersion: 2 + 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: + - {fileID: 5090722024082631022} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!61 &6106641039752435111 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 204632724861940951} + m_Enabled: 1 + serializedVersion: 3 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_CompositeOperation: 0 + m_CompositeOrder: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0, y: 0} + oldSize: {x: 0, y: 0} + newSize: {x: 0, y: 0} + adaptiveTilingThreshold: 0 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + m_Size: {x: 0.87, y: 0.78} + m_EdgeRadius: 0 +--- !u!50 &7019269918067109340 +Rigidbody2D: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 204632724861940951} + m_BodyType: 1 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 60 + m_LinearDamping: 0 + m_AngularDamping: 0.05 + m_GravityScale: 0 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 4 +--- !u!114 &3298396436480561959 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 204632724861940951} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 44b572240c4243c9954bd19967bfeb64, type: 3} + m_Name: + m_EditorClassIdentifier: + attributes: + health: 40 + maxHealth: 40 + moveSpeed: 2 + luck: 0 + armor: 0 + level: 1 + experience: 0 + baseExperienceToLevelUp: 100 + damage: 1 + rangedDamage: 1 + meleeDamage: 1 + attackRange: 1 + attackSpeed: 1 +--- !u!114 &9093693903318130491 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 204632724861940951} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9139aea24fd54a5eb0f5fc1556478cb6, type: 3} + m_Name: + m_EditorClassIdentifier: + character: {fileID: 3298396436480561959} + initialHealth: 100 +--- !u!114 &3179741077809616033 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 204632724861940951} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9139aea24fd54a5eb0f5fc1556478cb6, type: 3} + m_Name: + m_EditorClassIdentifier: + character: {fileID: 3298396436480561959} + initialHealth: 100 +--- !u!114 &2885408193262179595 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 204632724861940951} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5fa2924c6ed8486bbfa95c439bf9e421, type: 3} + m_Name: + m_EditorClassIdentifier: + character: {fileID: 3298396436480561959} + deathBehavior: + _implementer: {fileID: 9133510821041460886} + health: {fileID: 9093693903318130491} +--- !u!114 &9133510821041460886 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 204632724861940951} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 73900af7351645fdb19d016d621feb35, type: 3} + m_Name: + m_EditorClassIdentifier: + expReward: 5 + coinReward: 1 +--- !u!114 &4043203721006489305 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 204632724861940951} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e4ff53f671604189b15fac28115b2b70, type: 3} + m_Name: + m_EditorClassIdentifier: + weaponStats: + damage: 2 + attackSpeed: 1 + range: 0.7 + damageType: 0 + character: {fileID: 3298396436480561959} + targetMask: + serializedVersion: 2 + m_Bits: 64 +--- !u!114 &9197488311964383076 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 204632724861940951} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 373b52eb9bf8c40f785bb6947a1aee66, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1073741824 + drawGizmos: 1 + detailedGizmos: 0 + startEndModifier: + addPoints: 0 + exactStartPoint: 3 + exactEndPoint: 3 + useRaycasting: 0 + mask: + serializedVersion: 2 + m_Bits: 4294967295 + useGraphRaycasting: 0 + traversableTags: -1 + tagPenalties: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + graphMask: + value: -1 +--- !u!114 &2964327480768693548 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 204632724861940951} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f6eb1402c17e84a9282a7f0f62eb584f, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1073741824 + radius: 0.5 + height: 1.09 + canMove: 1 + maxSpeed: 1 + gravity: {x: 0, y: 0, z: 0} + groundMask: + serializedVersion: 2 + m_Bits: 4294967295 + endReachedDistance: 0.6 + whenCloseToDestination: 0 + rvoDensityBehavior: + enabled: 1 + densityThreshold: 0.5 + returnAfterBeingPushedAway: 0 + progressAverage: 0 + lastJobDensityResult: 0 + repathRateCompatibility: NaN + canSearchCompability: 0 + orientation: 1 + enableRotation: 1 + autoRepath: + mode: 2 + period: 0.5 + sensitivity: 10 + maximumPeriod: 2 + visualizeSensitivity: 0 + maxAcceleration: -2.5 + rotationSpeed: 360 + slowdownDistance: 0.6 + pickNextWaypointDist: 2 + alwaysDrawGizmos: 0 + slowWhenNotFacingTarget: 1 + preventMovingBackwards: 0 + constrainInsideGraph: 0 +--- !u!114 &435001957072118475 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 204632724861940951} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 560112f876f5746c780eca0d404e7139, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1073741824 + radiusBackingField: 0.5 + heightBackingField: 2 + centerBackingField: 1 + locked: 0 + lockWhenNotMoving: 0 + agentTimeHorizon: 2 + obstacleTimeHorizon: 0.5 + maxNeighbours: 10 + layer: 1 + collidesWith: -1 + wallAvoidForce: 1 + wallAvoidFalloff: 1 + priority: 0.5 + debug: 0 +--- !u!114 &1527323237162929931 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 204632724861940951} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 032c4d53d6b340fc994192cc0d24a061, type: 3} + m_Name: + m_EditorClassIdentifier: + character: {fileID: 3298396436480561959} + aiPath: {fileID: 2964327480768693548} + target: {fileID: 0} +--- !u!1 &3667932760953165253 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5090722024082631022} + - component: {fileID: 987872320002065258} + m_Layer: 0 + m_Name: Square + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5090722024082631022 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3667932760953165253} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2, y: 2, z: 2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 8982578637896279064} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &987872320002065258 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3667932760953165253} + 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_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + 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: -2614437293559027876, guid: 3e57b8831fc895368a3f55e7162c76f5, 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 diff --git a/Assets/Prefabs/Enemies/Basic Enemy.prefab.meta b/Assets/Prefabs/Enemies/Basic Enemy.prefab.meta new file mode 100644 index 0000000..af01035 --- /dev/null +++ b/Assets/Prefabs/Enemies/Basic Enemy.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d5225fe09f2ee0168b3a40e21948820a +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Weapons/PistolProjectile.prefab b/Assets/Prefabs/Weapons/PistolProjectile.prefab index 8cdf9bb..9d9c6e6 100644 --- a/Assets/Prefabs/Weapons/PistolProjectile.prefab +++ b/Assets/Prefabs/Weapons/PistolProjectile.prefab @@ -75,7 +75,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: rb: {fileID: 6129280278992346914} - speed: 4 + speed: 10 lifeTime: 5 --- !u!61 &9209553851344386497 BoxCollider2D: diff --git a/Assets/Scenes/main.unity b/Assets/Scenes/main.unity index 52bd0c4..a1a3e5e 100644 --- a/Assets/Scenes/main.unity +++ b/Assets/Scenes/main.unity @@ -119,6 +119,146 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} +--- !u!1 &48810668 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 48810671} + - component: {fileID: 48810670} + - component: {fileID: 48810669} + m_Layer: 0 + m_Name: A* + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &48810669 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 48810668} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1764de1de43cc4d19af52679d3eaae06, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1073741824 + desiredSimulationFPS: 20 + workerThreads: 2 + doubleBuffering: 0 + hardCollisions: 1 + symmetryBreakingBias: 0.1 + movementPlane: 1 + useNavmeshAsObstacle: 0 + drawQuadtree: 0 +--- !u!114 &48810670 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 48810668} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 78396926cbbfc4ac3b48fc5fc34a87d1, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1073741824 + data: + dataString: UEsDBBQAAAgIAAAIIex8Dd+RuQIAAPIFAAALACQAZ3JhcGgwLmpzb24KACAAAAAAAAEAGAAAgD7V3rGdAQCAPtXesZ0BAIA+1d6xnQFlVE1v4jAQ/SvI56UK0EJ3b7tA6R7aoqWrHpYeXHtCLIwd2U6BVvz3nXEMCVRCSnjz9ebNTD6ZMr4EEaybOSUfrAT2o8PonX3rNMZ72PGVNQv1AUefFyVDQU48+vzhQVnEexTm7QaCU+KnWWlyzhCsjMqt20zlCsbWB49wzrUHNDkbKNog9NlhO3z0RxSyT6Ef9Owc8E2ACeAav6NXN7u6OXOsjNB8U4Ikyq28/RTQ60U3g80kDyIurNbKJyYs7MvY6ZiXvsI+0EEqjp1FBtnViEoWoFZFoNTt+Kc89xASQcf3E+VQozox+2Vr4Tbcr2tq71xXVOo2kqpTPnyxdmvOubOb+2PVXkYVQqHE+g/fC+5DS9c2PGmY96I+W67X/E3DSwHm0c6crYxEY3AVhVYe+pPm76mxcQFi3eA11QuwKr8O6DhG6uEQe98tApSnPrKr6wb968EvtI3qp5xkSch3ygUOJ/cb+4mL41MFRIkkxj/zVXvDkuFOOR/QlERIKPnOcT4gwQhIunfJwRC9N1s5ysWmkSupUYWxdQYinAiWYLgO+zlmDJcLcGFr8bqw3HE6tsQu2Y43dBES4cY/yy5Mc7s9Ddvh9vq40se3f680BF/Y7QP44qkKWpmW2mR4RIHH1ph6b9tiHsMWlcu5aIUF2IXKwYQHHqshHVww2Q5FLWOEqbSmXY4NREbYAP1eSd+CY10dYfZoTTy9s2ekv6qUPL8QJoaD4UAMr+UtDEU25F2Zi9GAD7Ksl49ueoMbFk9IGZSb63mtV5oSbpdpejF4LsdPYWfmeBlPVjq+namPjW1NXpncLoQDME91hlOz4LAIfl3kVCpscwEhKBP3kn0umbZiDXJ5SrSMwk53wfFlk2XJSvVuAyFLNo6fvyUj+HSSuLrvCrZU/CwZaBwdyGelYcNLMvUP7PAfUEsDBBQAAAgIAAAIIey2oqoMbAAAAHcAAAAJACQAbWV0YS5qc29uCgAgAAAAAAABABgAAIA+1d6xnQEAgD7V3rGdAQCAPtXesZ0Bq1YqSy0qzszPU7JSMNUz1rPQUVBKL0osyCgGChiCOKWZKSB2tFKymbGZcbKZSYpFqlmygVmibkpasrlxorGBgWGauamhsalSLFB9SWVBql9ibipET0BiSUZaZl5KZl66nntRZoo7yGil2FoAUEsBAi0AFAAACAgAAAgh7HwN35G5AgAA8gUAAAsAJAAAAAAAAAAAAAAAAAAAAGdyYXBoMC5qc29uCgAgAAAAAAABABgAAIA+1d6xnQEAgD7V3rGdAQCAPtXesZ0BUEsBAi0AFAAACAgAAAgh7LaiqgxsAAAAdwAAAAkAJAAAAAAAAAAAAAAABgMAAG1ldGEuanNvbgoAIAAAAAAAAQAYAACAPtXesZ0BAIA+1d6xnQEAgD7V3rGdAVBLBQYAAAAAAgACALgAAAC9AwAAAAA= + file_cachedStartup: {fileID: 0} + cacheStartup: 0 + showNavGraphs: 1 + showUnwalkableNodes: 1 + debugMode: 0 + debugFloor: 0 + debugRoof: 1 + manualDebugFloorRoof: 0 + showSearchTree: 0 + unwalkableNodeDebugSize: 0.3 + logPathResults: 0 + maxNearestNodeDistance: 100 + scanOnStartup: 1 + fullGetNearestSearch: 0 + prioritizeGraphs: 0 + prioritizeGraphsLimit: 1 + colorSettings: + _SolidColor: {r: 0.11764706, g: 0.4, b: 0.7882353, a: 0.9} + _UnwalkableNode: {r: 1, g: 0, b: 0, a: 0.5} + _BoundsHandles: {r: 0.29, g: 0.454, b: 0.741, a: 0.9} + _ConnectionLowLerp: {r: 0, g: 1, b: 0, a: 0.5} + _ConnectionHighLerp: {r: 1, g: 0, b: 0, a: 0.5} + _MeshEdgeColor: {r: 0, g: 0, b: 0, a: 0.5} + _AreaColors: [] + tagNames: + - Basic Ground + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 + - 12 + - 13 + - 14 + - 15 + - 16 + - 17 + - 18 + - 19 + - 20 + - 21 + - 22 + - 23 + - 24 + - 25 + - 26 + - 27 + - 28 + - 29 + - 30 + - 31 + heuristic: 2 + heuristicScale: 1 + threadCount: 1 + maxFrameTime: 10 + batchGraphUpdates: 0 + graphUpdateBatchingInterval: 0.2 + navmeshUpdates: + updateInterval: 0 + euclideanEmbedding: + mode: 0 + seed: 0 + pivotPointRoot: {fileID: 0} + spreadOutCount: 10 + showGraphs: 1 +--- !u!4 &48810671 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 48810668} + serializedVersion: 2 + 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: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &54233098 GameObject: m_ObjectHideFlags: 0 @@ -563,7 +703,7 @@ GameObject: - component: {fileID: 659470514} - component: {fileID: 659470513} - component: {fileID: 659470515} - m_Layer: 0 + m_Layer: 3 m_Name: Walls m_TagString: Untagged m_Icon: {fileID: 0} @@ -6725,6 +6865,63 @@ Transform: m_Children: [] m_Father: {fileID: 54233099} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1791967925 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 204632724861940951, guid: d5225fe09f2ee0168b3a40e21948820a, type: 3} + propertyPath: m_Name + value: Basic Enemy + objectReference: {fileID: 0} + - target: {fileID: 8982578637896279064, guid: d5225fe09f2ee0168b3a40e21948820a, type: 3} + propertyPath: m_LocalPosition.x + value: -9.88 + objectReference: {fileID: 0} + - target: {fileID: 8982578637896279064, guid: d5225fe09f2ee0168b3a40e21948820a, type: 3} + propertyPath: m_LocalPosition.y + value: -1.669 + objectReference: {fileID: 0} + - target: {fileID: 8982578637896279064, guid: d5225fe09f2ee0168b3a40e21948820a, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8982578637896279064, guid: d5225fe09f2ee0168b3a40e21948820a, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8982578637896279064, guid: d5225fe09f2ee0168b3a40e21948820a, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8982578637896279064, guid: d5225fe09f2ee0168b3a40e21948820a, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8982578637896279064, guid: d5225fe09f2ee0168b3a40e21948820a, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8982578637896279064, guid: d5225fe09f2ee0168b3a40e21948820a, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8982578637896279064, guid: d5225fe09f2ee0168b3a40e21948820a, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8982578637896279064, guid: d5225fe09f2ee0168b3a40e21948820a, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d5225fe09f2ee0168b3a40e21948820a, type: 3} --- !u!1 &1869990420 GameObject: m_ObjectHideFlags: 0 @@ -6972,7 +7169,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1501730282976965803, guid: 4d1c30f952fa59fb9b0cc1a987f40ad8, type: 3} propertyPath: possibleWeapons.Array.size - value: 2 + value: 1 objectReference: {fileID: 0} - target: {fileID: 1501730282976965803, guid: 4d1c30f952fa59fb9b0cc1a987f40ad8, type: 3} propertyPath: 'possibleItems.Array.data[0]' @@ -7041,11 +7238,15 @@ PrefabInstance: - target: {fileID: 1501730282976965803, guid: 4d1c30f952fa59fb9b0cc1a987f40ad8, type: 3} propertyPath: 'possibleWeapons.Array.data[0]' value: - objectReference: {fileID: 11400000, guid: 53811578f5e9423a584055fe920fa137, type: 2} + objectReference: {fileID: 11400000, guid: b950dd0b0d131df60b0be02373005b2b, type: 2} - target: {fileID: 1501730282976965803, guid: 4d1c30f952fa59fb9b0cc1a987f40ad8, type: 3} propertyPath: 'possibleWeapons.Array.data[1]' value: objectReference: {fileID: 11400000, guid: b950dd0b0d131df60b0be02373005b2b, type: 2} + - target: {fileID: 2792772072994430032, guid: 4d1c30f952fa59fb9b0cc1a987f40ad8, type: 3} + propertyPath: m_CellSize.x + value: 300 + objectReference: {fileID: 0} - target: {fileID: 4567329713039532410, guid: 4d1c30f952fa59fb9b0cc1a987f40ad8, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -7177,3 +7378,5 @@ SceneRoots: - {fileID: 1975785671} - {fileID: 1300312978} - {fileID: 479709345} + - {fileID: 48810671} + - {fileID: 1791967925} diff --git a/Assets/Scripts/AI.meta b/Assets/Scripts/AI.meta new file mode 100644 index 0000000..c24fdd2 --- /dev/null +++ b/Assets/Scripts/AI.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: fd150948bb694852a35cf1413b7bde52 +timeCreated: 1752320960 \ No newline at end of file diff --git a/Assets/Scripts/AI/Chaser.cs b/Assets/Scripts/AI/Chaser.cs new file mode 100644 index 0000000..5623a79 --- /dev/null +++ b/Assets/Scripts/AI/Chaser.cs @@ -0,0 +1,39 @@ +using System; +using Data; +using KBCore.Refs; +using Pathfinding; +using Systems; +using UnityEngine; + +namespace AI +{ + public class Chaser : MonoBehaviour + { + [SerializeField, Self] private Character character; + [SerializeField, Self] private AIPath aiPath; + [SerializeField] private Transform target; + + private void OnEnable() + { + SetTarget(); + } + + private void Start() + { + SetTarget(); + } + + private void Update() + { + if (!target || !aiPath) return; + + aiPath.maxSpeed = character.attributes.MoveSpeed; + aiPath.destination = target.position; + } + + private void SetTarget() + { + target = GameManager.Instance.Player.transform; + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/AI/Chaser.cs.meta b/Assets/Scripts/AI/Chaser.cs.meta new file mode 100644 index 0000000..3ff3dd1 --- /dev/null +++ b/Assets/Scripts/AI/Chaser.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 032c4d53d6b340fc994192cc0d24a061 +timeCreated: 1752320968 \ No newline at end of file