Procházet zdrojové kódy

修改动画逻辑,攻击中不切idle动画

SZAND\msx_2 před 3 měsíci
rodič
revize
696a8d5d23

+ 11 - 1
ActionTowerDefense/Assets/Scripts/Characters/Demonic.cs

@@ -33,6 +33,7 @@ public class Demonic : MoveCharacter
     private AttackController.AttackMethod[] am;
     private int len;
     private float pastAttackTime;
+    private bool isConAttack;       //连续攻击,不切idle动画
 
     [Header("八卦")]
     public float adsorbSpeed;                           //八卦吸附的速度
@@ -514,6 +515,11 @@ public class Demonic : MoveCharacter
                     }
                     else
                     {
+                        isAttack = GetAttack();
+                        if (isAttack)
+                        {
+                            isConAttack = true;
+                        }
                         ChangeState(CharacterState.Idle);
                     }
                     break;
@@ -684,8 +690,12 @@ public class Demonic : MoveCharacter
         switch (newState)
         {
             case CharacterState.Idle:
-                ani.Play("idle", 0, 0);
+                if (!isConAttack)
+                {
+                    ani.Play("idle", 0, 0);
+                }
                 rb.velocity = Vector3.zero;
+                isConAttack = false;
                 //animalAni.SetInteger("state", (int)PlayerState.Idle);
                 break;
             case CharacterState.Run:

+ 10 - 1
ActionTowerDefense/Assets/Scripts/Characters/Enemy.cs

@@ -70,6 +70,7 @@ public class Enemy : MoveCharacter
     private AttackController.AttackMethod[] am;
     private int len;
     private float pastAttackTime;
+    private bool isConAttack;       //连续攻击,不切idle动画
 
     [Header("掉落魂")]
     public int dropSoulMax = 3;
@@ -512,6 +513,11 @@ public class Enemy : MoveCharacter
                 attackController.JudgeTriggerOnOff();
                 if (attackController.attackTime <= 0)
                 {
+                    isAttack = GetAttack();
+                    if (isAttack)
+                    {
+                        isConAttack = true;
+                    }
                     ChangeState(CharacterState.Idle);
                     break;
                 }
@@ -672,7 +678,10 @@ public class Enemy : MoveCharacter
         switch (newState)
         {
             case CharacterState.Idle:
-                ani.Play("idle", 0, 0);
+                if (!isConAttack)
+                {
+                    ani.Play("idle", 0, 0);
+                }
                 rb.velocity = Vector3.zero;
                 //animalAni.SetInteger("state", (int)PlayerState.Idle);
                 break;