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:
parent
0dbd060125
commit
ec302c4c33
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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.
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue