Ver Fonte

法师出场后不下落

SZAND\msx_2 há 1 ano atrás
pai
commit
adf1a2d673

+ 2 - 2
ActionTowerDefense/Assets/Resources/Prefab/ESpirits_Cook.prefab

@@ -853,8 +853,8 @@ MonoBehaviour:
   targetCharacter: {fileID: 0}
   beTargetCharacter: []
   searchTrigger: {fileID: 2932762729738363159}
-  targetTypes: 010000000300000002000000
-  canHitFly: 0
+  targetTypes: 0100000003000000
+  canHitFly: 1
   linked: 0
   joint: {fileID: 0}
   rope: {fileID: 0}

+ 2 - 1
ActionTowerDefense/Assets/Resources/Prefab/ESpirits_Float.prefab

@@ -965,7 +965,8 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 87a71f18bf09266429ae26405a98d030, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  height: 7
+  maxHeight: 8
+  minHeight: 6
   intervalTime: 20
   firstAttackTime: 2
   followTime: 2.5

+ 6 - 1
ActionTowerDefense/Assets/Resources/Prefab/Spirits_Float.prefab

@@ -577,6 +577,9 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   owner: {fileID: 0}
   trigObjList: []
+  needToChange: 0
+  maxLen: 0
+  minLen: 0
 --- !u!65 &4334931071865358337
 BoxCollider:
   m_ObjectHideFlags: 0
@@ -962,7 +965,8 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: e4ee37ae96a7315419ecbfe1bb3c43e9, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  height: 7
+  maxHeight: 8
+  minHeight: 6
 --- !u!114 &8639832132491289351
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -1030,6 +1034,7 @@ MonoBehaviour:
   invincibleTime: 0
   totalInvincibleTime: 0
   targetCharacter: {fileID: 0}
+  beTargetCharacter: []
   searchTrigger: {fileID: 3566347593191160092}
   targetTypes: 0400000005000000
   canHitFly: 1

+ 15 - 20
ActionTowerDefense/Assets/Scripts/Spirits/ESpirits_Cook.cs

@@ -35,7 +35,7 @@ public class ESpirits_Cook : MonoBehaviour
 
     public float larger;                //顾客变大的程度
 
-    private GameObject target;
+    private Character target;
     public SearchTrigger searchtrigger;
 
     public GameObject lockEffect;
@@ -91,26 +91,19 @@ public class ESpirits_Cook : MonoBehaviour
 
     private void TargetInteract()
     {
-
-    }
-
-    private void OnTriggerEnter(Collider other)
-    {
-        //路过发串
-        if (state == cookState.sell && (other.gameObject.layer == 7 || other.gameObject.layer == 8 || other.gameObject.layer == 6))
+        target = searchtrigger.GetMinDisTarget(ene.targetTypes, ene.canHitFly);
+        if (state == cookState.sell && (target.gameObject.layer == 7 || target.gameObject.layer == 8 || target.gameObject.layer == 6))
         {
             if (!isInterval && chuan > 0)
             {
-                GameObject ga = other.transform.parent.parent.parent.gameObject;
-                Character ca = ga.GetComponent<Character>();
-                if (!ca.cooks.Exists(T => T == gameObject))
+                if (!target.cooks.Exists(T => T == gameObject))
                 {
                     isInterval = true;
                     chuan -= 1;
                     text.text = chuan.ToString();
                     ani.Play("attack_march", 0, 0);
-                    ca.HpUp(value, larger);
-                    ca.cooks.Add(gameObject);
+                    target.HpUp(value, larger);
+                    target.cooks.Add(gameObject);
                     //count += 1;
                     //Instantiate(effect, ga.transform.position, new Quaternion(0, 0, 0, 0), ga.transform);
                     if (chuan == 0)
@@ -124,18 +117,20 @@ public class ESpirits_Cook : MonoBehaviour
         //抓人
         else if (state == cookState.run)
         {
-            if (other.gameObject.layer == 6 || other.gameObject.layer == 7)
+            if (target.gameObject.layer == 6 || target.gameObject.layer == 7)
             {
-                food = other.transform.parent.parent.parent.gameObject;
-                if (food.layer == 7 && !food.GetComponent<Demonic>().isDie)
+                food = target.gameObject;
+                if (food.layer == 7 && !target.isDie)
                 {
-                    food.GetComponent<Demonic>().ChangeState(CharacterState.Coma);
+                    //food.GetComponent<Demonic>().ChangeState(CharacterState.Coma);
+                    food.GetComponent<Demonic>().ChangeState(CharacterState.Die);
                     //cookKillEffect.SetActive(true);
                     ChangeState(cookState.seize);
                 }
-                else if (food.layer == 6 && !food.GetComponent<PlayerController>().isDie)
+                else if (food.layer == 6 && !target.isDie)
                 {
-                    food.GetComponent<PlayerController>().ChangeState(CharacterState.Coma);
+                    //food.GetComponent<PlayerController>().ChangeState(CharacterState.Coma);
+                    food.GetComponent<PlayerController>().ChangeState(CharacterState.Die);
                     //cookKillEffect.SetActive(true);
                     ChangeState(cookState.seize);
                 }
@@ -144,7 +139,7 @@ public class ESpirits_Cook : MonoBehaviour
             }
         }
         //回家卖串
-        else if (state == cookState.back && other.gameObject.layer == 8)
+        else if (state == cookState.back && target.gameObject.layer == 8)
         {
             ChangeState(cookState.cook);
         }

+ 3 - 1
ActionTowerDefense/Assets/Scripts/Spirits/ESpirits_Float.cs

@@ -6,7 +6,8 @@ public class ESpirits_Float : MonoBehaviour
 {
     [Header("出场飞升")]
     private bool isRise = true;
-    public float height;    //升到哪个高度后停止
+    public float maxHeight, minHeight;
+    private float height;               //升到哪个高度后停止
     private float curHeight;
     private float speed = 1;
     private Vector3 origPos;
@@ -52,6 +53,7 @@ public class ESpirits_Float : MonoBehaviour
         origPos = transform.position;
         curHeight = origPos.y;
         pastTime = intervalTime - firstAttackTime;
+        height = Random.Range(minHeight, maxHeight);
     }
 
     private void OnDisable()

+ 4 - 1
ActionTowerDefense/Assets/Scripts/Spirits/Spirits_Float.cs

@@ -5,7 +5,8 @@ using UnityEngine;
 public class Spirits_Float : MonoBehaviour
 {
     private bool isRise = true;
-    public float height;    //升到哪个高度后停止
+    public float maxHeight, minHeight;
+    private float height;               //升到哪个高度后停止
     private float curHeight;
     private float speed = 1;
     private Vector3 origPos;
@@ -14,6 +15,8 @@ public class Spirits_Float : MonoBehaviour
     {
         origPos = transform.position;
         curHeight = origPos.y;
+        height = Random.Range(minHeight, maxHeight);
+        GetComponent<Demonic>().flyHeight = height;
     }
 
     private void MoveToHeight()