diff --git a/Assets/Models/Enemies/Dice_Enemy_0.5.fbx.meta b/Assets/Models/Enemies/Dice_Enemy_0.5.fbx.meta index d761914..8bdf4ee 100644 --- a/Assets/Models/Enemies/Dice_Enemy_0.5.fbx.meta +++ b/Assets/Models/Enemies/Dice_Enemy_0.5.fbx.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 7a6502dc040177d419b70a6d548889c2 +guid: f1ba87c0234acfa4da251bb1bf3fe963 ModelImporter: serializedVersion: 22200 internalIDToNameTable: [] diff --git a/Assets/Prefabs/Game/GameController.prefab b/Assets/Prefabs/Game/GameController.prefab index 0373088..51a29e8 100644 --- a/Assets/Prefabs/Game/GameController.prefab +++ b/Assets/Prefabs/Game/GameController.prefab @@ -64,3 +64,5 @@ MonoBehaviour: enemies: - prefab: {fileID: 3602081654026665026, guid: 7ab59219438e4a241affd5e9441d9d9f, type: 3} weight: 1 + - prefab: {fileID: 3602081654026665026, guid: 7ab59219438e4a241affd5e9441d9d9f, type: 3} + weight: 1 diff --git a/Assets/Scenes/Level1.meta b/Assets/Scenes/Level1.meta new file mode 100644 index 0000000..da2f522 --- /dev/null +++ b/Assets/Scenes/Level1.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 20d12456f6b8d264dbc227a3e4c83468 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Level1.unity b/Assets/Scenes/Level1.unity index 22d3abb..a052227 100644 --- a/Assets/Scenes/Level1.unity +++ b/Assets/Scenes/Level1.unity @@ -1398,6 +1398,70 @@ Transform: m_Children: [] m_Father: {fileID: 1311630986} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2057016899 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2057016901} + - component: {fileID: 2057016900} + m_Layer: 0 + m_Name: NavMesh Surface + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2057016900 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2057016899} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a5ac11cc976e418e8d13136b07e1f52, type: 3} + m_Name: + m_EditorClassIdentifier: + m_SerializedVersion: 0 + m_AgentTypeID: 0 + m_CollectObjects: 0 + m_Size: {x: 10, y: 10, z: 10} + m_Center: {x: 0, y: 2, z: 0} + m_LayerMask: + serializedVersion: 2 + m_Bits: 64 + m_UseGeometry: 0 + m_DefaultArea: 0 + m_GenerateLinks: 0 + m_IgnoreNavMeshAgent: 1 + m_IgnoreNavMeshObstacle: 1 + m_OverrideTileSize: 0 + m_TileSize: 256 + m_OverrideVoxelSize: 0 + m_VoxelSize: 0.16666667 + m_MinRegionArea: 2 + m_NavMeshData: {fileID: 23800000, guid: 94503c9617c3db6459977597f152b6f0, type: 2} + m_BuildHeightMesh: 0 +--- !u!4 &2057016901 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2057016899} + 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!1001 &655697425354162324 PrefabInstance: m_ObjectHideFlags: 0 @@ -1772,3 +1836,4 @@ SceneRoots: - {fileID: 1481837882} - {fileID: 512102627} - {fileID: 1311630986} + - {fileID: 2057016901} diff --git a/Assets/Scenes/Level1/NavMesh-NavMesh Surface.asset b/Assets/Scenes/Level1/NavMesh-NavMesh Surface.asset new file mode 100644 index 0000000..212f88e Binary files /dev/null and b/Assets/Scenes/Level1/NavMesh-NavMesh Surface.asset differ diff --git a/Assets/Scenes/Level1/NavMesh-NavMesh Surface.asset.meta b/Assets/Scenes/Level1/NavMesh-NavMesh Surface.asset.meta new file mode 100644 index 0000000..f4ceadd --- /dev/null +++ b/Assets/Scenes/Level1/NavMesh-NavMesh Surface.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 94503c9617c3db6459977597f152b6f0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 23800000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemies/EyeEnemy.cs b/Assets/Scripts/Enemies/EyeEnemy.cs index bed8e15..7a2e6c1 100644 --- a/Assets/Scripts/Enemies/EyeEnemy.cs +++ b/Assets/Scripts/Enemies/EyeEnemy.cs @@ -9,7 +9,6 @@ public class EyeEnemy : Enemy public float offsetDistance = 1f; [SerializeField] float currentDelay = 0; - [SerializeField] Player target; void Start() { diff --git a/Assets/Scripts/Enemies/MeleeEnemy.cs b/Assets/Scripts/Enemies/MeleeEnemy.cs new file mode 100644 index 0000000..c181502 --- /dev/null +++ b/Assets/Scripts/Enemies/MeleeEnemy.cs @@ -0,0 +1,50 @@ +using UnityEngine; +using UnityEngine.AI; + +public class MeleeEnemy : Enemy +{ + public float speed = 1f; + public float detectionRadius = 5f; + public float patrollRadius = 3f; + public float damage = 5f; + public float attackRate = 1f; + public float attackRadius = 1f; + + [SerializeField] Player target; + [SerializeField] MeleeEnemyState currentState = MeleeEnemyState.Patrolling; + Vector3 patrollingTarget; + NavMeshAgent navMeshAgent; + + void Start() { + target = FindFirstObjectByType(); + navMeshAgent = GetComponent(); + patrollingTarget = GetPatrollingTarget(); + } + + void Update() { + switch (currentState) { + case MeleeEnemyState.Patrolling: + Vector3 vectorToTarget = (target.transform.position - transform.position).normalized; + bool canSee = false; + if (Physics.Raycast(transform.position, vectorToTarget, out RaycastHit hit, detectionRadius)) { + if (hit.transform.CompareTag("Player")) canSee = true; + } + if (canSee) currentState = MeleeEnemyState.Pursuing; + else { + if (Vector3.Distance(transform.position, patrollingTarget) <= 0.1f) patrollingTarget = GetPatrollingTarget(); + navMeshAgent.destination = patrollingTarget; + } + break; + } + } + + Vector3 GetPatrollingTarget() { + return Vector3.zero; + } +} + +enum MeleeEnemyState { + Patrolling, + Pursuing, + Attacking +} diff --git a/Assets/Scripts/Enemies/MeleeEnemy.cs.meta b/Assets/Scripts/Enemies/MeleeEnemy.cs.meta new file mode 100644 index 0000000..ee3f54b --- /dev/null +++ b/Assets/Scripts/Enemies/MeleeEnemy.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 53554f0e5c5ef3146a592d5dfe75e390 \ No newline at end of file