浏览代码

sleeping enemies don't use their weapons now

Niels 9 年之前
父节点
当前提交
315dd8efd8

+ 3 - 2
game/Assets/Prefabs/Enemy.prefab

@@ -164,7 +164,7 @@ GameObject:
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
-  m_IsActive: 1
+  m_IsActive: 0
 --- !u!1 &1335195235077080
 GameObject:
   m_ObjectHideFlags: 1
@@ -1902,6 +1902,7 @@ MonoBehaviour:
   IndicatorCoverHigh: {fileID: 1601112143768466}
   IndicatorCoverFull: {fileID: 1507475458156676}
   maxHealth: 2.5
+  weapon: {fileID: 114593885084691842}
 --- !u!114 &114593885084691842
 MonoBehaviour:
   m_ObjectHideFlags: 1
@@ -2020,7 +2021,7 @@ ParticleSystem:
   moveWithTransform: 0
   moveWithCustomTransform: {fileID: 0}
   scalingMode: 1
-  randomSeed: -1991427356
+  randomSeed: 1470135828
   InitialModule:
     serializedVersion: 3
     enabled: 1

+ 2 - 0
game/Assets/Scripts/Enemy/BehaviorController.cs

@@ -36,6 +36,7 @@ namespace EnemyAI
                         {
                             case Result.Success:
                                 currentBehavior = Behaviors.ChaseBehavior;
+                                blackboard.SetWeaponActive(true);
                                 break;
                             case Result.Failure:
                                 break;
@@ -48,6 +49,7 @@ namespace EnemyAI
                                 break;
                             case Result.Failure:
                                 currentBehavior = Behaviors.RechargeBehavior;
+                                blackboard.SetWeaponActive(false);
                                 break;
                         }
                         break;

+ 7 - 0
game/Assets/Scripts/Enemy/Blackboard.cs

@@ -5,12 +5,19 @@ namespace EnemyAI
 {
     public class Blackboard
     {
+        public WeaponEnemy Weapon;
+
         public bool Night 
         { 
             get; 
             set; 
         }
 
+        public void SetWeaponActive(bool state)
+        {
+            Weapon.gameObject.SetActive(state);
+        }
+
         public UnityEngine.AI.NavMeshAgent navMeshAgent;
 
         public UnityEngine.Vector3 PlayerPosition;

+ 4 - 0
game/Assets/Scripts/Enemy/Enemy.cs

@@ -29,6 +29,8 @@ public class Enemy : MonoBehaviour
     public float maxHealth = 2.5f;
     private bool dead;
 
+    public WeaponEnemy weapon;
+
 
     void OnCollisionEnter(Collision collision)
     {
@@ -50,6 +52,7 @@ public class Enemy : MonoBehaviour
         dayTimeManager = GameObject.FindObjectOfType<DayTimeManager>();
 
         behaviorController = new EnemyAI.BehaviorController();
+        behaviorController.blackboard.Weapon = weapon;
         behaviorController.blackboard.navMeshAgent = GetComponent<UnityEngine.AI.NavMeshAgent>();
     }
 
@@ -126,6 +129,7 @@ public class Enemy : MonoBehaviour
     private void Death()
     {
         dead = true;
+        GetComponentInChildren<WeaponEnemy>().enabled = false;
 
         GetComponent<UnityEngine.AI.NavMeshAgent>().isStopped = true;
 

+ 5 - 12
game/Assets/Scripts/Player.cs

@@ -194,10 +194,10 @@ public class Player : MonoBehaviour
         lightIntensity = muzzleLight.intensity;
         var joystickNames = Input.GetJoystickNames();
         useMouseLook = joystickNames.Length == 0 || string.IsNullOrEmpty(joystickNames[0]);
-        if (useMouseLook)
-        {
-            lookSmoothingSeconds = 0;
-        }
+        //if (useMouseLook)
+        //{
+        //    lookSmoothingSeconds = 0;
+        //}
 
         _powerUp[0] = gauge.Find("PowerUp1").gameObject;
         _powerUp[1] = gauge.Find("PowerUp2").gameObject;
@@ -235,14 +235,7 @@ public class Player : MonoBehaviour
         if (shooting)
         {
             Shoot();
-            if (Time.frameCount % 4 == 0)
-            {
-                muzzleLight.intensity = 0;
-            }
-            else
-            {
-                muzzleLight.intensity = Random.Range(.5f, 2f) * lightIntensity;
-            }
+            muzzleLight.intensity = Random.Range(.5f, 2f) * lightIntensity;
         }
         else
         {