Enemy AI updates

Updated NavMesh
Enemy will be provoked and chase when target enters detection range
Enemy attacks when it is withing attack range to target
This commit is contained in:
Stedd 2022-07-25 10:01:19 +02:00
parent 0dbd060125
commit ec302c4c33
5 changed files with 118 additions and 40 deletions

View File

@ -61,6 +61,8 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
target: {fileID: 0}
chaseDistance: 15
stopDistance: 2
--- !u!195 &3924901601269037083
NavMeshAgent:
m_ObjectHideFlags: 0
@ -70,17 +72,17 @@ NavMeshAgent:
m_GameObject: {fileID: 1314956764262545219}
m_Enabled: 1
m_AgentTypeID: 0
m_Radius: 0.28
m_Radius: 0.4
m_Speed: 2
m_Acceleration: 8
avoidancePriority: 50
m_AngularSpeed: 120
m_StoppingDistance: 0
m_StoppingDistance: 0.2
m_AutoTraverseOffMeshLink: 1
m_AutoBraking: 1
m_AutoRepath: 1
m_Height: 1.62
m_BaseOffset: 1.19
m_Height: 1.45
m_BaseOffset: 1
m_WalkableMask: 4294967295
m_ObstacleAvoidanceType: 4
--- !u!1 &8248657945561792745

View File

@ -1,3 +1,4 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
@ -6,10 +7,11 @@ using UnityEngine.AI;
public class EnemyAI : MonoBehaviour
{
[SerializeField] Transform target;
[SerializeField] float chaseRange = 5f;
[SerializeField] float detectRange = 15f;
[SerializeField] float attackRange = 5f;
[SerializeField] private bool isProvoked = false;
private NavMeshAgent navMeshAgent;
void Start()
{
navMeshAgent = GetComponent<NavMeshAgent>();
@ -17,10 +19,49 @@ public class EnemyAI : MonoBehaviour
void Update()
{
if (DistanceToTarget(target.position) < chaseRange)
SetStopDistance(attackRange * 0.9f);
if (DistanceToTarget(target.position) < detectRange)
{
navMeshAgent.SetDestination(target.position);
isProvoked = true;
}
if (isProvoked)
{
EngageTarget();
}
}
private void EngageTarget()
{
if (DistanceToTarget(target.position) <= attackRange)
{
AttackTarget();
}
else
{
FollowTarget();
}
}
private void FollowTarget()
{
navMeshAgent.SetDestination(target.position);
}
private void AttackTarget()
{
print("Die Human!");
}
private void Idle()
{
}
private void SetStopDistance(float stopDistance)
{
navMeshAgent.stoppingDistance = stopDistance;
}
private float DistanceToTarget(Vector3 targetPosition)
@ -31,7 +72,9 @@ public class EnemyAI : MonoBehaviour
void OnDrawGizmosSelected()
{
Gizmos.color = Color.red;
Gizmos.DrawWireSphere(transform.position, chaseRange);
Gizmos.DrawWireSphere(transform.position, detectRange);
Gizmos.color = Color.blue;
Gizmos.DrawWireSphere(transform.position, navMeshAgent.stoppingDistance);
}
}

View File

@ -107,10 +107,10 @@ NavMeshSettings:
serializedVersion: 2
agentTypeID: 0
agentRadius: 0.4
agentHeight: 1.6
agentSlope: 45
agentClimb: 0.32
ledgeDropHeight: 2.32
agentHeight: 1.45
agentSlope: 60
agentClimb: 1
ledgeDropHeight: 10
maxJumpAcrossDistance: 3
minRegionArea: 0.5
manualCellSize: 0
@ -185,7 +185,7 @@ PrefabInstance:
- target: {fileID: 2300000, guid: d85d3a32fb6157d488e31edf82b7b1c4, type: 3}
propertyPath: m_Materials.Array.data[0]
value:
objectReference: {fileID: 2100000, guid: 82096aab38f01cb40a1cbf8629a810ba, type: 2}
objectReference: {fileID: 2100000, guid: 76ff537c8e1a84345868e6aeee938ab3, type: 2}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: d85d3a32fb6157d488e31edf82b7b1c4, type: 3}
--- !u!1001 &101430667
@ -213,11 +213,11 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 5d2e4237b4429b34fae4c9eb3cd9efd5, type: 3}
propertyPath: m_LocalPosition.y
value: 0.07410587
value: -0.06
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 5d2e4237b4429b34fae4c9eb3cd9efd5, type: 3}
propertyPath: m_LocalPosition.z
value: 30.62
value: 30.09
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 5d2e4237b4429b34fae4c9eb3cd9efd5, type: 3}
propertyPath: m_LocalRotation.w
@ -250,7 +250,7 @@ PrefabInstance:
- target: {fileID: 2300000, guid: 5d2e4237b4429b34fae4c9eb3cd9efd5, type: 3}
propertyPath: m_Materials.Array.data[0]
value:
objectReference: {fileID: 2100000, guid: 82096aab38f01cb40a1cbf8629a810ba, type: 2}
objectReference: {fileID: 2100000, guid: 2236c125e13c3dd41a4428d631bf633c, type: 2}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 5d2e4237b4429b34fae4c9eb3cd9efd5, type: 3}
--- !u!4 &101430668 stripped
@ -1448,7 +1448,7 @@ PrefabInstance:
- target: {fileID: 2300000, guid: ab33e6080ae416b4d899f39fa8951b98, type: 3}
propertyPath: m_Materials.Array.data[0]
value:
objectReference: {fileID: 2100000, guid: 82096aab38f01cb40a1cbf8629a810ba, type: 2}
objectReference: {fileID: 2100000, guid: 1032d41f900276c40a9dd24f55b7d420, type: 2}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: ab33e6080ae416b4d899f39fa8951b98, type: 3}
--- !u!4 &1556481699 stripped
@ -1817,11 +1817,11 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 1834225747245264377, guid: 3a896632310e02b468121bf09411f87e, type: 3}
propertyPath: m_LocalPosition.x
value: 4.5658655
value: 3.344
objectReference: {fileID: 0}
- target: {fileID: 1834225747245264377, guid: 3a896632310e02b468121bf09411f87e, type: 3}
propertyPath: m_LocalPosition.y
value: 1.96
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1834225747245264377, guid: 3a896632310e02b468121bf09411f87e, type: 3}
propertyPath: m_LocalPosition.z
@ -1861,7 +1861,11 @@ PrefabInstance:
objectReference: {fileID: 727849754}
- target: {fileID: 2032617874441210469, guid: 3a896632310e02b468121bf09411f87e, type: 3}
propertyPath: chaseRange
value: 5
value: 150
objectReference: {fileID: 0}
- target: {fileID: 8248657945561792745, guid: 3a896632310e02b468121bf09411f87e, type: 3}
propertyPath: m_StaticEditorFlags
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 3a896632310e02b468121bf09411f87e, type: 3}
@ -1878,19 +1882,19 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3}
propertyPath: m_LocalPosition.x
value: 17.75046
value: 16.36046
objectReference: {fileID: 0}
- target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3}
propertyPath: m_LocalPosition.y
value: -11.351592
value: -6.761592
objectReference: {fileID: 0}
- target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3}
propertyPath: m_LocalPosition.z
value: -6.015546
value: 22.514454
objectReference: {fileID: 0}
- target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3}
propertyPath: m_LocalRotation.w
value: 1
value: -0.015707303
objectReference: {fileID: 0}
- target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3}
propertyPath: m_LocalRotation.x
@ -1898,11 +1902,11 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3}
propertyPath: m_LocalRotation.y
value: -0
value: -0.9998767
objectReference: {fileID: 0}
- target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3}
propertyPath: m_LocalRotation.z
value: -0
value: 0
objectReference: {fileID: 0}
- target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
@ -1947,15 +1951,15 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, type: 3}
propertyPath: m_LocalPosition.x
value: 17.75046
value: 16.36046
objectReference: {fileID: 0}
- target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, type: 3}
propertyPath: m_LocalPosition.y
value: -11.351592
value: -6.761592
objectReference: {fileID: 0}
- target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, type: 3}
propertyPath: m_LocalPosition.z
value: -6.015546
value: 22.514454
objectReference: {fileID: 0}
- target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, type: 3}
propertyPath: m_LocalRotation.w
@ -2002,14 +2006,22 @@ PrefabInstance:
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 3273242134651530650, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3360281265970703093, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: m_IsActive
value: 1
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5393215578589016655, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: m_Materials.Array.data[0]
value:
objectReference: {fileID: 2100000, guid: 6b911390c5825014e8377183a7837d3f, type: 2}
- target: {fileID: 6326861089322885425, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8616685848737228372, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: m_Name
value: Player
@ -2020,19 +2032,19 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: m_LocalPosition.x
value: 0
value: -1.39
objectReference: {fileID: 0}
- target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: m_LocalPosition.y
value: 0
value: 4.59
objectReference: {fileID: 0}
- target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: m_LocalPosition.z
value: 0
value: 28.53
objectReference: {fileID: 0}
- target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: m_LocalRotation.w
value: 1
value: -0.015707303
objectReference: {fileID: 0}
- target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: m_LocalRotation.x
@ -2040,11 +2052,11 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: m_LocalRotation.y
value: -0
value: -0.9998767
objectReference: {fileID: 0}
- target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: m_LocalRotation.z
value: -0
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
@ -2052,7 +2064,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
value: -181.8
objectReference: {fileID: 0}
- target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: m_LocalEulerAnglesHint.z

Binary file not shown.

View File

@ -69,7 +69,7 @@ NavMeshProjectSettings:
cost: 1
- name:
cost: 1
m_LastAgentTypeID: -887442657
m_LastAgentTypeID: -1372625422
m_Settings:
- serializedVersion: 2
agentTypeID: 0
@ -85,7 +85,28 @@ NavMeshProjectSettings:
manualTileSize: 0
tileSize: 256
accuratePlacement: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
- serializedVersion: 2
agentTypeID: -1372625422
agentRadius: 0.2
agentHeight: 1.7
agentSlope: 60
agentClimb: 1.5
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
accuratePlacement: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
m_SettingNames:
- Humanoid
- Drone