ソースを参照

修复刺客attack2为attack1伤害,冲刺无伤害问题

LAPTOP-OM1V99U2\永远de小亡灵 10 ヶ月 前
コミット
56f639b19e

+ 4 - 2
ActionTowerDefense/Assets/Resources/Prefab/ESpirits_Assassin.prefab

@@ -294,11 +294,13 @@ MonoBehaviour:
   attackTriggers:
   - {fileID: 4347565098670608659}
   addAttackEffect: {fileID: 0}
-  curDamage: 
+  curDamage1: 
+  curDamage2: 
   targetTypes: 010000000300000002000000
   targetCharacter: {fileID: 0}
   attackTarget: {fileID: 0}
   beTargetCharacter: []
+  getDistanceOffset: 0
   isSpirit: 1
   isTran: 0
   pc: {fileID: 0}
@@ -935,7 +937,7 @@ GameObject:
   - component: {fileID: 4979172509264116742}
   - component: {fileID: 8257178686841521685}
   - component: {fileID: 2254593709981819441}
-  m_Layer: 0
+  m_Layer: 20
   m_Name: DashAttackTrigger
   m_TagString: Untagged
   m_Icon: {fileID: 0}

+ 4 - 2
ActionTowerDefense/Assets/Resources/Prefab/MySpirit/Spirits_Assassin.prefab

@@ -364,11 +364,13 @@ MonoBehaviour:
   attackTriggers:
   - {fileID: 4347565098670608659}
   addAttackEffect: {fileID: 0}
-  curDamage: 
+  curDamage1: 
+  curDamage2: 
   targetTypes: 040000000500000006000000
   targetCharacter: {fileID: 0}
   attackTarget: {fileID: 0}
   beTargetCharacter: []
+  getDistanceOffset: 0
   isSpirit: 1
   isTran: 0
   pc: {fileID: 0}
@@ -1199,7 +1201,7 @@ MonoBehaviour:
   targetY: 1
   aim: {fileID: 8203964573996106666}
   offset: 2
-  owner: {fileID: 0}
+  owner: {fileID: 2437299196472462353}
 --- !u!54 &8257178686841521685
 Rigidbody:
   m_ObjectHideFlags: 0

+ 12 - 6
ActionTowerDefense/Assets/Scripts/Character.cs

@@ -112,7 +112,8 @@ public class Character : MonoBehaviour
     public List<AttackInfo> attack2Infos;       //普攻2信息
     public List<AttackTrigger> attackTriggers;  //普攻触发器,敌方进入后播放动画进行攻击
     public GameObject addAttackEffect;
-    public int[] curDamage;
+    public int[] curDamage1;
+    public int[] curDamage2;
 
     [Header("目标")]
     public List<TargetType> targetTypes;
@@ -183,10 +184,15 @@ public class Character : MonoBehaviour
         {
             rope = null;
         }
-        curDamage = new int[attack1Infos.Count];
-        for(int i = 0; i < attack1Infos.Count; i++)
+        curDamage1 = new int[attack1Infos.Count];
+        for (int i = 0; i < attack1Infos.Count; i++)
         {
-            curDamage[i] = attack1Infos[i].damage;
+            curDamage1[i] = attack1Infos[i].damage;
+        }
+        curDamage2 = new int[attack2Infos.Count];
+        for (int i = 0; i < attack2Infos.Count; i++)
+        {
+            curDamage2[i] = attack2Infos[i].damage;
         }
     }
 
@@ -296,7 +302,7 @@ public class Character : MonoBehaviour
                 case AttackType.Melee:
                     for (int i = 0; i < attack1Infos.Count; i++)
                     {
-                        attackTriggers[i].damage = curDamage[i];
+                        attackTriggers[i].damage = curDamage1[i];
                         attackTriggers[i].changeHurt = attack1Infos[i].changeHurt;
                         attackTriggers[i].repelValue = attack1Infos[i].repelValue;
                         Vector3 attackDir = attack1Infos[i].attackDir.normalized;
@@ -345,7 +351,7 @@ public class Character : MonoBehaviour
             case AttackType.Dash:
                 for (int i = 0; i < attack2Infos.Count; i++)
                 {
-                    attackTriggers[i].damage = curDamage[i];
+                    attackTriggers[i].damage = curDamage2[i];
                     attackTriggers[i].changeHurt = attack2Infos[i].changeHurt;
                     attackTriggers[i].repelValue = attack2Infos[i].repelValue;
                     Vector3 attackDir = attack2Infos[i].attackDir.normalized;

+ 4 - 26
ActionTowerDefense/Assets/Scripts/Spirits/DashEffect.cs

@@ -55,25 +55,14 @@ public class DashEffect : MonoBehaviour
         }
         //作为己方冲刺可检测enemy
         BeHitTrigger beHitTrigger = other.GetComponent<BeHitTrigger>();
-        if(!isEnemy && beHitTrigger!=null&& other.transform.parent.parent.parent.gameObject.layer == 8 )
+        if(beHitTrigger!=null&& Util.CheckCanHit(owner.tag, beHitTrigger.owner.tag))
         {
-            Character character = other.GetComponentInParent<Character>();
-            if (!beHitTriggers.Exists(t => t == character))
-            {
-                beHitTriggers.Add(character);
-            }
-        }
-
-        //作为敌方冲刺可检测Player 和demonic
-        if (isEnemy && beHitTrigger != null && (other.transform.parent.parent.parent.gameObject.layer == 6
-            || other.transform.parent.parent.parent.gameObject.layer == 7) )
-        {
-            if(other.transform.parent.parent.parent.gameObject.layer == 6 && isInVain)
+            if (isEnemy && beHitTrigger.owner.tag == "Player" && isInVain)
             {
                 return;
             }
             Character character = other.GetComponentInParent<Character>();
-            if(!beHitTriggers.Exists(t => t == character))
+            if (!beHitTriggers.Exists(t => t == character))
             {
                 beHitTriggers.Add(character);
             }
@@ -84,18 +73,7 @@ public class DashEffect : MonoBehaviour
     {
         //作为己方冲刺可检测enemy
         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))
-            {
-                beHitTriggers.Remove(character);
-            }
-        }
-
-        //作为敌方冲刺可检测Player 和demonic
-        if (isEnemy && beHitTrigger != null && (other.transform.parent.parent.parent.gameObject.layer == 6 
-            || other.transform.parent.parent.parent.gameObject.layer == 7))
+        if (beHitTrigger != null && Util.CheckCanHit(owner.tag, beHitTrigger.owner.tag))
         {
             Character character = other.GetComponentInParent<Character>();
             if (beHitTriggers.Exists(t => t == character))