Ver código fonte

dasheffect判定由bodycollider改为behitTriger

LAPTOP-OM1V99U2\永远de小亡灵 1 ano atrás
pai
commit
93c7541b29

+ 8 - 7
ActionTowerDefense/Assets/Scripts/Spirits/DashEffect.cs

@@ -38,8 +38,8 @@ public class DashEffect : MonoBehaviour
     }
     private void OnTriggerEnter(Collider other)
     {
-        
-        if(!isEnemy && other.gameObject.layer == 8 && other.name == "BodyCollider")
+        BeHitTrigger beHitTrigger = other.GetComponent<BeHitTrigger>();
+        if(!isEnemy && beHitTrigger!=null&& other.transform.parent.parent.parent.gameObject.layer == 8 )
         {
             Character character = other.GetComponentInParent<Character>();
             if (!beHitTriggers.Exists(t => t == character))
@@ -47,8 +47,8 @@ public class DashEffect : MonoBehaviour
                 beHitTriggers.Add(character);
             }
         }
-        if (isEnemy && (other.gameObject.layer == 6|| other.gameObject.layer == 7)
-            && other.name == "BodyCollider")
+        if (isEnemy && beHitTrigger != null && (other.transform.parent.parent.parent.gameObject.layer == 6
+            || other.transform.parent.parent.parent.gameObject.layer == 7) )
         {
             Character character = other.GetComponentInParent<Character>();
             if(!beHitTriggers.Exists(t => t == character))
@@ -59,7 +59,8 @@ public class DashEffect : MonoBehaviour
     }
     private void OnTriggerExit(Collider other)
     {
-        if (!isEnemy && other.gameObject.layer == 8 && other.name == "BodyCollider")
+        BeHitTrigger beHitTrigger = other.GetComponent<BeHitTrigger>();
+        if (!isEnemy && beHitTrigger != null && other.transform.parent.parent.parent.gameObject.layer == 8 )
         {
             Character character = other.GetComponentInParent<Character>();
             if (beHitTriggers.Exists(t => t == character))
@@ -68,8 +69,8 @@ public class DashEffect : MonoBehaviour
             }
             
         }
-        if (isEnemy && (other.gameObject.layer == 6 || other.gameObject.layer == 7)
-            && other.name == "BodyCollider")
+        if (isEnemy && beHitTrigger != null && (other.transform.parent.parent.parent.gameObject.layer == 6 
+            || other.transform.parent.parent.parent.gameObject.layer == 7))
         {
             Character character = other.GetComponentInParent<Character>();
             if (beHitTriggers.Exists(t => t == character))