Преглед изворни кода

修复落到地面后不会转回来的问题

WGL пре 4 месеци
родитељ
комит
4054e4b4db

+ 24 - 22
ActionTowerDefense/Assets/Scripts/Characters/Demonic.cs

@@ -311,20 +311,20 @@ public class Demonic : MoveCharacter
                     }
                     velocity.x = velocityAddition;
                     velocity.y = 0;
+                    Quaternion targetQt = Quaternion.Euler(Vector3.zero);
                     if (!foot.haveGravity)
                     {
                         transform.position = new Vector3(transform.position.x, platformPosY, transform.position.z);
-                        Quaternion targetQt = Quaternion.Euler(transform.rotation.eulerAngles.x, transform.rotation.eulerAngles.y, platformRotZ);
-                        if (RotLerpTime < 1)
-                        {
-                            RotLerpTime += RotLerpSpeed * Time.deltaTime;
-                            transform.rotation = Quaternion.Lerp(transform.rotation, targetQt, RotLerpTime);
-                        }
-                        else
-                        {
-                            transform.rotation = targetQt;
-                        }
-
+                        targetQt = Quaternion.Euler(transform.rotation.eulerAngles.x, transform.rotation.eulerAngles.y, platformRotZ);
+                    }
+                    if (RotLerpTime < 1)
+                    {
+                        RotLerpTime += RotLerpSpeed * Time.deltaTime;
+                        transform.rotation = Quaternion.Lerp(transform.rotation, targetQt, RotLerpTime);
+                    }
+                    else
+                    {
+                        transform.rotation = targetQt;
                     }
                     rb.velocity = velocity;
 
@@ -380,21 +380,21 @@ public class Demonic : MoveCharacter
                         }
                     }
                     velocity.y = 0;
+                    Quaternion targetQt = Quaternion.Euler(Vector3.zero);
                     if (!foot.haveGravity)
                     {
                         transform.position = new Vector3(transform.position.x, platformPosY, transform.position.z);
-                        Quaternion targetQt = Quaternion.Euler(transform.rotation.eulerAngles.x, transform.rotation.eulerAngles.y, platformRotZ);
-                        if (RotLerpTime < 1)
-                        {
-                            RotLerpTime += RotLerpSpeed * Time.deltaTime;
-                            transform.rotation = Quaternion.Lerp(transform.rotation, targetQt, RotLerpTime);
-                        }
-                        else
-                        {
-                            transform.rotation = targetQt;
-                        }
+                        targetQt = Quaternion.Euler(transform.rotation.eulerAngles.x, transform.rotation.eulerAngles.y, platformRotZ);
+                    }
+                    if (RotLerpTime < 1)
+                    {
+                        RotLerpTime += RotLerpSpeed * Time.deltaTime;
+                        transform.rotation = Quaternion.Lerp(transform.rotation, targetQt, RotLerpTime);
+                    }
+                    else
+                    {
+                        transform.rotation = targetQt;
                     }
-                        
                     rb.velocity = velocity;
                     AdjustHeight();
                 }
@@ -632,8 +632,10 @@ public class Demonic : MoveCharacter
         switch (state)
         {
             case CharacterState.Idle:
+                //transform.rotation = Quaternion.Euler(Vector3.zero);
                 break;
             case CharacterState.Run:
+                //transform.rotation = Quaternion.Euler(Vector3.zero);
                 rb.velocity = Vector3.zero;
                 break;
             case CharacterState.Rush:

+ 24 - 21
ActionTowerDefense/Assets/Scripts/Characters/Enemy.cs

@@ -251,19 +251,20 @@ public class Enemy : MoveCharacter
                         break;
                     }
                     velocity.y = 0;
+                    Quaternion targetQt = Quaternion.Euler(Vector3.zero);
                     if (!foot.haveGravity)
                     {
                         transform.position = new Vector3(transform.position.x, platformPosY, transform.position.z);
-                        Quaternion targetQt = Quaternion.Euler(transform.rotation.eulerAngles.x, transform.rotation.eulerAngles.y, platformRotZ);
-                        if (RotLerpTime < 1)
-                        {
-                            RotLerpTime += RotLerpSpeed * Time.deltaTime;
-                            transform.rotation = Quaternion.Lerp(transform.rotation, targetQt, RotLerpTime);
-                        }
-                        else
-                        {
-                            transform.rotation = targetQt;
-                        }
+                        targetQt = Quaternion.Euler(transform.rotation.eulerAngles.x, transform.rotation.eulerAngles.y, platformRotZ);
+                    }
+                    if (RotLerpTime < 1)
+                    {
+                        RotLerpTime += RotLerpSpeed * Time.deltaTime;
+                        transform.rotation = Quaternion.Lerp(transform.rotation, targetQt, RotLerpTime);
+                    }
+                    else
+                    {
+                        transform.rotation = targetQt;
                     }
                     rb.velocity = velocity;
                 }
@@ -317,21 +318,21 @@ public class Enemy : MoveCharacter
                         }
                     }
                     velocity.y = 0;
+                    Quaternion targetQt = Quaternion.Euler(Vector3.zero);
                     if (!foot.haveGravity)
                     {
                         transform.position = new Vector3(transform.position.x, platformPosY, transform.position.z);
-                        Quaternion targetQt = Quaternion.Euler(transform.rotation.eulerAngles.x, transform.rotation.eulerAngles.y, platformRotZ);
-                        if (RotLerpTime < 1)
-                        {
-                            RotLerpTime += RotLerpSpeed * Time.deltaTime;
-                            transform.rotation = Quaternion.Lerp(transform.rotation, targetQt, RotLerpTime);
-                        }
-                        else
-                        {
-                            transform.rotation = targetQt;
-                        }
+                        targetQt = Quaternion.Euler(transform.rotation.eulerAngles.x, transform.rotation.eulerAngles.y, platformRotZ);
+                    }
+                    if (RotLerpTime < 1)
+                    {
+                        RotLerpTime += RotLerpSpeed * Time.deltaTime;
+                        transform.rotation = Quaternion.Lerp(transform.rotation, targetQt, RotLerpTime);
+                    }
+                    else
+                    {
+                        transform.rotation = targetQt;
                     }
-                        
                     rb.velocity = velocity;
                 }
                 break;
@@ -491,9 +492,11 @@ public class Enemy : MoveCharacter
         switch (state)
         {
             case CharacterState.Idle:
+                //transform.rotation = Quaternion.Euler(Vector3.zero);
                 break;
             case CharacterState.Run:
                 rb.velocity = Vector3.zero;
+                //transform.rotation = Quaternion.Euler(Vector3.zero);
                 break;
             case CharacterState.Rush:
                 rb.velocity = Vector3.zero;