ChaseBehavior.cs 871 B

12345678910111213141516171819202122232425262728293031
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. namespace EnemyAI
  5. {
  6. internal class ChaseBehavior : Behavior
  7. {
  8. internal override Result Run(ref Blackboard blackboard)
  9. {
  10. if (!blackboard.Night)
  11. {
  12. return Result.Failure;
  13. }
  14. if (Vector3.Distance(blackboard.PlayerPosition, blackboard.EnemyPosition) < 0.5f)
  15. {
  16. //Close enough to player
  17. return Result.Success;
  18. }
  19. //If the player moved so far that re-pathing is necessary
  20. if (Vector3.Distance(blackboard.PlayerPosition, blackboard.navMeshAgent.destination) > 0.5f)
  21. {
  22. blackboard.navMeshAgent.destination = blackboard.PlayerPosition;
  23. }
  24. return Result.Running;
  25. }
  26. }
  27. }