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

View File

@ -1,3 +1,4 @@
using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
@ -6,10 +7,11 @@ using UnityEngine.AI;
public class EnemyAI : MonoBehaviour public class EnemyAI : MonoBehaviour
{ {
[SerializeField] Transform target; [SerializeField] Transform target;
[SerializeField] float chaseRange = 5f; [SerializeField] float detectRange = 15f;
[SerializeField] float attackRange = 5f;
[SerializeField] private bool isProvoked = false;
private NavMeshAgent navMeshAgent; private NavMeshAgent navMeshAgent;
void Start() void Start()
{ {
navMeshAgent = GetComponent<NavMeshAgent>(); navMeshAgent = GetComponent<NavMeshAgent>();
@ -17,10 +19,49 @@ public class EnemyAI : MonoBehaviour
void Update() void Update()
{ {
if (DistanceToTarget(target.position) < chaseRange) SetStopDistance(attackRange * 0.9f);
if (DistanceToTarget(target.position) < detectRange)
{
isProvoked = true;
}
if (isProvoked)
{
EngageTarget();
}
}
private void EngageTarget()
{
if (DistanceToTarget(target.position) <= attackRange)
{
AttackTarget();
}
else
{
FollowTarget();
}
}
private void FollowTarget()
{ {
navMeshAgent.SetDestination(target.position); 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) private float DistanceToTarget(Vector3 targetPosition)
@ -31,7 +72,9 @@ public class EnemyAI : MonoBehaviour
void OnDrawGizmosSelected() void OnDrawGizmosSelected()
{ {
Gizmos.color = Color.red; 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 serializedVersion: 2
agentTypeID: 0 agentTypeID: 0
agentRadius: 0.4 agentRadius: 0.4
agentHeight: 1.6 agentHeight: 1.45
agentSlope: 45 agentSlope: 60
agentClimb: 0.32 agentClimb: 1
ledgeDropHeight: 2.32 ledgeDropHeight: 10
maxJumpAcrossDistance: 3 maxJumpAcrossDistance: 3
minRegionArea: 0.5 minRegionArea: 0.5
manualCellSize: 0 manualCellSize: 0
@ -185,7 +185,7 @@ PrefabInstance:
- target: {fileID: 2300000, guid: d85d3a32fb6157d488e31edf82b7b1c4, type: 3} - target: {fileID: 2300000, guid: d85d3a32fb6157d488e31edf82b7b1c4, type: 3}
propertyPath: m_Materials.Array.data[0] propertyPath: m_Materials.Array.data[0]
value: value:
objectReference: {fileID: 2100000, guid: 82096aab38f01cb40a1cbf8629a810ba, type: 2} objectReference: {fileID: 2100000, guid: 76ff537c8e1a84345868e6aeee938ab3, type: 2}
m_RemovedComponents: [] m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: d85d3a32fb6157d488e31edf82b7b1c4, type: 3} m_SourcePrefab: {fileID: 100100000, guid: d85d3a32fb6157d488e31edf82b7b1c4, type: 3}
--- !u!1001 &101430667 --- !u!1001 &101430667
@ -213,11 +213,11 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 5d2e4237b4429b34fae4c9eb3cd9efd5, type: 3} - target: {fileID: 400000, guid: 5d2e4237b4429b34fae4c9eb3cd9efd5, type: 3}
propertyPath: m_LocalPosition.y propertyPath: m_LocalPosition.y
value: 0.07410587 value: -0.06
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 5d2e4237b4429b34fae4c9eb3cd9efd5, type: 3} - target: {fileID: 400000, guid: 5d2e4237b4429b34fae4c9eb3cd9efd5, type: 3}
propertyPath: m_LocalPosition.z propertyPath: m_LocalPosition.z
value: 30.62 value: 30.09
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 5d2e4237b4429b34fae4c9eb3cd9efd5, type: 3} - target: {fileID: 400000, guid: 5d2e4237b4429b34fae4c9eb3cd9efd5, type: 3}
propertyPath: m_LocalRotation.w propertyPath: m_LocalRotation.w
@ -250,7 +250,7 @@ PrefabInstance:
- target: {fileID: 2300000, guid: 5d2e4237b4429b34fae4c9eb3cd9efd5, type: 3} - target: {fileID: 2300000, guid: 5d2e4237b4429b34fae4c9eb3cd9efd5, type: 3}
propertyPath: m_Materials.Array.data[0] propertyPath: m_Materials.Array.data[0]
value: value:
objectReference: {fileID: 2100000, guid: 82096aab38f01cb40a1cbf8629a810ba, type: 2} objectReference: {fileID: 2100000, guid: 2236c125e13c3dd41a4428d631bf633c, type: 2}
m_RemovedComponents: [] m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 5d2e4237b4429b34fae4c9eb3cd9efd5, type: 3} m_SourcePrefab: {fileID: 100100000, guid: 5d2e4237b4429b34fae4c9eb3cd9efd5, type: 3}
--- !u!4 &101430668 stripped --- !u!4 &101430668 stripped
@ -1448,7 +1448,7 @@ PrefabInstance:
- target: {fileID: 2300000, guid: ab33e6080ae416b4d899f39fa8951b98, type: 3} - target: {fileID: 2300000, guid: ab33e6080ae416b4d899f39fa8951b98, type: 3}
propertyPath: m_Materials.Array.data[0] propertyPath: m_Materials.Array.data[0]
value: value:
objectReference: {fileID: 2100000, guid: 82096aab38f01cb40a1cbf8629a810ba, type: 2} objectReference: {fileID: 2100000, guid: 1032d41f900276c40a9dd24f55b7d420, type: 2}
m_RemovedComponents: [] m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: ab33e6080ae416b4d899f39fa8951b98, type: 3} m_SourcePrefab: {fileID: 100100000, guid: ab33e6080ae416b4d899f39fa8951b98, type: 3}
--- !u!4 &1556481699 stripped --- !u!4 &1556481699 stripped
@ -1817,11 +1817,11 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 1834225747245264377, guid: 3a896632310e02b468121bf09411f87e, type: 3} - target: {fileID: 1834225747245264377, guid: 3a896632310e02b468121bf09411f87e, type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: 4.5658655 value: 3.344
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 1834225747245264377, guid: 3a896632310e02b468121bf09411f87e, type: 3} - target: {fileID: 1834225747245264377, guid: 3a896632310e02b468121bf09411f87e, type: 3}
propertyPath: m_LocalPosition.y propertyPath: m_LocalPosition.y
value: 1.96 value: 1
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 1834225747245264377, guid: 3a896632310e02b468121bf09411f87e, type: 3} - target: {fileID: 1834225747245264377, guid: 3a896632310e02b468121bf09411f87e, type: 3}
propertyPath: m_LocalPosition.z propertyPath: m_LocalPosition.z
@ -1861,7 +1861,11 @@ PrefabInstance:
objectReference: {fileID: 727849754} objectReference: {fileID: 727849754}
- target: {fileID: 2032617874441210469, guid: 3a896632310e02b468121bf09411f87e, type: 3} - target: {fileID: 2032617874441210469, guid: 3a896632310e02b468121bf09411f87e, type: 3}
propertyPath: chaseRange propertyPath: chaseRange
value: 5 value: 150
objectReference: {fileID: 0}
- target: {fileID: 8248657945561792745, guid: 3a896632310e02b468121bf09411f87e, type: 3}
propertyPath: m_StaticEditorFlags
value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
m_RemovedComponents: [] m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 3a896632310e02b468121bf09411f87e, type: 3} m_SourcePrefab: {fileID: 100100000, guid: 3a896632310e02b468121bf09411f87e, type: 3}
@ -1878,19 +1882,19 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3} - target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: 17.75046 value: 16.36046
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3} - target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3}
propertyPath: m_LocalPosition.y propertyPath: m_LocalPosition.y
value: -11.351592 value: -6.761592
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3} - target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3}
propertyPath: m_LocalPosition.z propertyPath: m_LocalPosition.z
value: -6.015546 value: 22.514454
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3} - target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3}
propertyPath: m_LocalRotation.w propertyPath: m_LocalRotation.w
value: 1 value: -0.015707303
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3} - target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3}
propertyPath: m_LocalRotation.x propertyPath: m_LocalRotation.x
@ -1898,11 +1902,11 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3} - target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3}
propertyPath: m_LocalRotation.y propertyPath: m_LocalRotation.y
value: -0 value: -0.9998767
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3} - target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3}
propertyPath: m_LocalRotation.z propertyPath: m_LocalRotation.z
value: -0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3} - target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3}
propertyPath: m_LocalEulerAnglesHint.x propertyPath: m_LocalEulerAnglesHint.x
@ -1947,15 +1951,15 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, type: 3} - target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: 17.75046 value: 16.36046
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, type: 3} - target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, type: 3}
propertyPath: m_LocalPosition.y propertyPath: m_LocalPosition.y
value: -11.351592 value: -6.761592
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, type: 3} - target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, type: 3}
propertyPath: m_LocalPosition.z propertyPath: m_LocalPosition.z
value: -6.015546 value: 22.514454
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, type: 3} - target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, type: 3}
propertyPath: m_LocalRotation.w propertyPath: m_LocalRotation.w
@ -2002,14 +2006,22 @@ PrefabInstance:
m_Modification: m_Modification:
m_TransformParent: {fileID: 0} m_TransformParent: {fileID: 0}
m_Modifications: m_Modifications:
- target: {fileID: 3273242134651530650, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3360281265970703093, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3} - target: {fileID: 3360281265970703093, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: m_IsActive propertyPath: m_IsActive
value: 1 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 5393215578589016655, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3} - target: {fileID: 5393215578589016655, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: m_Materials.Array.data[0] propertyPath: m_Materials.Array.data[0]
value: value:
objectReference: {fileID: 2100000, guid: 6b911390c5825014e8377183a7837d3f, type: 2} 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} - target: {fileID: 8616685848737228372, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: m_Name propertyPath: m_Name
value: Player value: Player
@ -2020,19 +2032,19 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3} - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: 0 value: -1.39
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3} - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: m_LocalPosition.y propertyPath: m_LocalPosition.y
value: 0 value: 4.59
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3} - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: m_LocalPosition.z propertyPath: m_LocalPosition.z
value: 0 value: 28.53
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3} - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: m_LocalRotation.w propertyPath: m_LocalRotation.w
value: 1 value: -0.015707303
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3} - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: m_LocalRotation.x propertyPath: m_LocalRotation.x
@ -2040,11 +2052,11 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3} - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: m_LocalRotation.y propertyPath: m_LocalRotation.y
value: -0 value: -0.9998767
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3} - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: m_LocalRotation.z propertyPath: m_LocalRotation.z
value: -0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3} - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: m_LocalEulerAnglesHint.x propertyPath: m_LocalEulerAnglesHint.x
@ -2052,7 +2064,7 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3} - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: m_LocalEulerAnglesHint.y propertyPath: m_LocalEulerAnglesHint.y
value: 0 value: -181.8
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3} - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3}
propertyPath: m_LocalEulerAnglesHint.z propertyPath: m_LocalEulerAnglesHint.z

Binary file not shown.

View File

@ -69,7 +69,7 @@ NavMeshProjectSettings:
cost: 1 cost: 1
- name: - name:
cost: 1 cost: 1
m_LastAgentTypeID: -887442657 m_LastAgentTypeID: -1372625422
m_Settings: m_Settings:
- serializedVersion: 2 - serializedVersion: 2
agentTypeID: 0 agentTypeID: 0
@ -85,7 +85,28 @@ NavMeshProjectSettings:
manualTileSize: 0 manualTileSize: 0
tileSize: 256 tileSize: 256
accuratePlacement: 0 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: debug:
m_Flags: 0 m_Flags: 0
m_SettingNames: m_SettingNames:
- Humanoid - Humanoid
- Drone