Bläddra i källkod

角色漂浮不下落bug修改

SZAND\msx_2 1 år sedan
förälder
incheckning
1a31e7cacf
1 ändrade filer med 5 tillägg och 2 borttagningar
  1. 5 2
      ActionTowerDefense/Assets/Scripts/MoveCharacter.cs

+ 5 - 2
ActionTowerDefense/Assets/Scripts/MoveCharacter.cs

@@ -43,6 +43,7 @@ public class MoveCharacter : Character
     private float backSpeed;    //往后退的速度
 
     private Vector3 origPos;     //初始位置
+    private float origY;
     private float pastTime;     //上升已用时间
     private float rise = 1;
     private float down = -1;
@@ -61,6 +62,7 @@ public class MoveCharacter : Character
         spine = transform.GetChild(0).GetChild(0).gameObject;
         mesh = spine.GetComponent<MeshRenderer>();
         mats = mesh.materials;
+        origY = transform.position.y;
     }
 
     private void ChangeMat(int state)
@@ -90,6 +92,7 @@ public class MoveCharacter : Character
             origPos = transform.position;
             curHeight = origPos.y;
         }
+        origPos.x = transform.position.x;
         ChangeState(CharacterState.Rise);
         floatState = 1;
         riseTime = Random.Range(minTime, maxTime);
@@ -145,12 +148,12 @@ public class MoveCharacter : Character
         else if (floatState == 3)
         {
             aniCollider.Play("Fall", 0, 0);
-            if (transform.position.y >= origPos.y + 0.05f)
+            if (transform.position.y >= origY + 0.05f)
             {
                 curHeight -= 10 * Time.deltaTime;
                 transform.position = new Vector3(origPos.x, curHeight, origPos.z);
             }
-            else if (foot.TrigGround || curHeight <= origPos.y + 0.05f)
+            else if (foot.TrigGround || curHeight <= origY + 0.05f)
             {
                 transform.position = origPos;
                 ChangeState(CharacterState.Idle);