Ver código fonte

stop moving at night

DasGewehr 9 anos atrás
pai
commit
fcd60b2b5d

+ 3 - 0
game/Assets/Scripts/Enemy/ChaseBehavior.cs

@@ -8,8 +8,11 @@ namespace EnemyAI
     {
         internal override Result Run(ref Blackboard blackboard)
         {
+            blackboard.navMeshAgent.isStopped = false;
+
             if (!blackboard.Night)
             {
+                blackboard.navMeshAgent.isStopped = true;
                 return Result.Failure;
             }
 

+ 13 - 3
game/Assets/Scripts/Enemy/Enemy.cs

@@ -11,9 +11,11 @@ public class Enemy : MonoBehaviour
     private float power = 1.0f;
     private enum PowerLevels { VeryLow, Low, Medium, High, Full}
     private EnemyAI.BehaviorController behaviorController;
-
+    private DayTimeManager dayTimeManager;
     private bool dead = false;
 
+
+
     void OnCollisionEnter(Collision collision)
     {
         if(!dead)
@@ -28,6 +30,8 @@ public class Enemy : MonoBehaviour
 	// Use this for initialization
 	void Start () 
     {
+        dayTimeManager = GameObject.FindObjectOfType<DayTimeManager>();
+
         behaviorController = new EnemyAI.BehaviorController();
         behaviorController.blackboard.navMeshAgent = GetComponent<UnityEngine.AI.NavMeshAgent>();
 	}
@@ -38,8 +42,14 @@ public class Enemy : MonoBehaviour
         if (!dead)
         {
             EnemyAI.Blackboard blackboard = behaviorController.blackboard;
-            // TODO get state
-            blackboard.Night = true;
+            if (dayTimeManager.dayTimeLabel == DayTimeLabel.Night)
+            {
+                blackboard.Night = true;
+            }
+            else
+            {
+                blackboard.Night = false;
+            }            
             blackboard.PlayerPosition = GameObject.FindGameObjectWithTag("Player").transform.position;
             blackboard.EnemyPosition = transform.position;