LAPTOP-OM1V99U2\永远de小亡灵 1 жил өмнө
parent
commit
16d4d43b07

+ 7 - 3
ActionTowerDefense/Assets/Scripts/Enemy.cs

@@ -482,9 +482,7 @@ public class Enemy : MoveCharacter
                 break;
             case CharacterState.ReadyToRush:
                 time += Time.deltaTime;
-                aimEffect.SetActive(true);
-                rb.constraints = RigidbodyConstraints.FreezeAll;
-                ReadyToDash(rushEndPos + Vector3.up, transform.position + Vector3.up);
+
                 if (time >= readyCD)
                 {
                     time = 0;
@@ -600,6 +598,7 @@ public class Enemy : MoveCharacter
                 break;
             case CharacterState.ReadyToRush:
                 time = 0;
+
                 aimEffect.SetActive(false);
                 aimEffect.transform.localScale = Vector3.zero;
                 rb.constraints =
@@ -627,6 +626,7 @@ public class Enemy : MoveCharacter
                 break;
             case CharacterState.FinishRush:
                 time = 0;
+                canNotChangeHurt = false;
                 searchState = SearchState.NoTarget;
                 noOnSearchState = false;
                 ani.Play("idle", 0, 0);
@@ -735,7 +735,11 @@ public class Enemy : MoveCharacter
                 break;
             case CharacterState.ReadyToRush:
                 time = 0;
+                canNotChangeHurt = true;
                 ani.Play("charge", 0, 0);
+                aimEffect.SetActive(true);
+                rb.constraints = RigidbodyConstraints.FreezeAll;
+                ReadyToDash(rushEndPos + Vector3.up, transform.position + Vector3.up);
                 
                 break;
             case CharacterState.RushAttack:

+ 6 - 1
ActionTowerDefense/Assets/Scripts/MoveCharacter.cs

@@ -72,6 +72,7 @@ public class MoveCharacter : Character
     public Material[] playerMats;
     public Material[] playerOut;
     public bool isInvisible;
+    public bool canNotChangeHurt;
 
     private void Awake()
     {
@@ -235,7 +236,11 @@ public class MoveCharacter : Character
             rb.AddForce(force);
             return;
         }
-        else if (changeHurt && state == CharacterState.Weak)
+        if (canNotChangeHurt)
+        {
+            return;
+        }
+        if (changeHurt && state == CharacterState.Weak)
         {
             ChangeState(CharacterState.Hurt);
             rb.AddForce(force);