Selaa lähdekoodia

更高效的动画切换

WGL 2 kuukautta sitten
vanhempi
commit
430319cc9e

+ 10 - 0
ActionTowerDefense/Assets/Scripts/Characters/AnimatorHash.cs

@@ -4,10 +4,20 @@ using UnityEngine;
 
 public class AnimatorHash
 {
+    public static int ANIMATOR_die;
+    public static int ANIMATOR_fall;
     public static int ANIMATOR_idle;
+    public static int ANIMATOR_jump;
+    public static int ANIMATOR_rush;
+    public static int ANIMATOR_walk;
 
     static AnimatorHash()
     {
+        ANIMATOR_die = Animator.StringToHash("die");
+        ANIMATOR_fall = Animator.StringToHash("fall");
         ANIMATOR_idle = Animator.StringToHash("idle");
+        ANIMATOR_jump = Animator.StringToHash("jump");
+        ANIMATOR_rush = Animator.StringToHash("rush");
+        ANIMATOR_walk = Animator.StringToHash("walk");
     }
 }

+ 5 - 5
ActionTowerDefense/Assets/Scripts/Characters/Demonic.cs

@@ -696,14 +696,14 @@ public class Demonic : MoveCharacter
                 //animalAni.SetInteger("state", (int)PlayerState.Idle);
                 break;
             case CharacterState.Run:
-                ani.Play("walk", 0, 0);
+                ani.Play(AnimatorHash.ANIMATOR_walk, 0, 0);
                 //animalAni.SetInteger("state", (int)PlayerState.Walk);
                 break;
             case CharacterState.Rush:
-                ani.Play("rush", 0, 0);
+                ani.Play(AnimatorHash.ANIMATOR_rush, 0, 0);
                 break;
             case CharacterState.Fall:
-                ani.Play("fall", 0, 0);
+                ani.Play(AnimatorHash.ANIMATOR_fall, 0, 0);
                 //animalAni.SetInteger("state", (int)PlayerState.Fall);
                 break;
             case CharacterState.Attack:
@@ -719,13 +719,13 @@ public class Demonic : MoveCharacter
                 else
                 {
                     isDie = true;
-                    ani.Play("die", 0, 0);
+                    ani.Play(AnimatorHash.ANIMATOR_die, 0, 0);
                     dieKeepTime = totalDieKeepTime;
                 }
                 break;
             case CharacterState.LockSoul:
                 rb.velocity = Vector3.zero;
-                ani.Play("walk", 0, 0);
+                ani.Play(AnimatorHash.ANIMATOR_walk, 0, 0);
                 //FaceToEneTower();
                 break;
             default:

+ 6 - 6
ActionTowerDefense/Assets/Scripts/Characters/Enemy.cs

@@ -590,23 +590,23 @@ public class Enemy : MoveCharacter
             case CharacterState.Idle:
                 if (!isConAttack || attackController.attackInterval > 0)
                 {
-                    ani.Play("idle", 0, 0);
+                    ani.Play(AnimatorHash.ANIMATOR_idle, 0, 0);
                 }
                 rb.velocity = Vector3.zero;
                 break;
             case CharacterState.Run:
-                ani.Play("walk", 0, 0);
+                ani.Play(AnimatorHash.ANIMATOR_walk, 0, 0);
                 break;
             case CharacterState.Rush:
-                ani.Play("rush", 0, 0);
+                ani.Play(AnimatorHash.ANIMATOR_rush, 0, 0);
                 break;
             case CharacterState.Fall:
-                ani.Play("fall", 0, 0);
+                ani.Play(AnimatorHash.ANIMATOR_fall, 0, 0);
                 break;
             case CharacterState.Attack:
                 break;
             case CharacterState.Die:
-                ani.Play("die", 0, 0);
+                ani.Play(AnimatorHash.ANIMATOR_die, 0, 0);
                 isDie = true;
                 dieKeepTime = totalDieKeepTime;
                 DropSouls();
@@ -654,7 +654,7 @@ public class Enemy : MoveCharacter
     public void Jump()
     {
         SetUpSpeed(jumpSpeed);
-        ani.Play("jump", 0, 0);
+        ani.Play(AnimatorHash.ANIMATOR_jump, 0, 0);
     }
 
     public void SetUpSpeed(float speed)