Browse Source

更改了击飞击落y轴阻力的描述为y轴重力,修复了击飞旋转的部分问题

WGL 2 months ago
parent
commit
bf2cc89399
1 changed files with 6 additions and 3 deletions
  1. 6 3
      ActionTowerDefense/Assets/Scripts/Characters/AttributeStatus.cs

+ 6 - 3
ActionTowerDefense/Assets/Scripts/Characters/AttributeStatus.cs

@@ -44,7 +44,7 @@ public class AttributeStatus : MonoBehaviour
     [TabGroup("击飞击落")] [DisplayOnly] public int hitState;
     [TabGroup("击飞击落")] [DisplayOnly] public bool isFly;
     [TabGroup("击飞击落")] [LabelText("X方向阻力")] public float decelerationRatioX = 2f;
-    [TabGroup("击飞击落")] [LabelText("Y方向力")] public float decelerationRatioY = 15f;
+    [TabGroup("击飞击落")] [LabelText("Y方向力")] public float decelerationRatioY = 15f;
     private Character landingDamageFrom;
     private Vector3 startFlyPos;
 
@@ -351,7 +351,7 @@ public class AttributeStatus : MonoBehaviour
                             }
                             vel.y -= decelerationRatioY * Time.deltaTime;
                             character.mecanim.transform.RotateAround(
-                                transform.position + rotateCenterHeight * Vector3.up, 
+                                character.transform.position + rotateCenterHeight * Vector3.up, 
                                 Vector3.forward, 
                                 flyingRotateSpeed * Time.deltaTime);
                             isFly = true;
@@ -514,7 +514,10 @@ public class AttributeStatus : MonoBehaviour
 
         rb.AddForce(vec3 * blowUp.force * (1 - resistances.BlowUp), ForceMode.Impulse);
         rb.transform.rotation = Quaternion.Euler(0, 0, 0);
-        character.mecanim.transform.localRotation = Quaternion.Euler(0, 0, startFlyAngle * attackDir);
+        character.mecanim.transform.RotateAround(
+            character.transform.position + rotateCenterHeight * Vector3.up,
+            Vector3.forward,
+            startFlyAngle * attackDir);
         flyingRotateSpeed = UnityEngine.Random.Range(flyingRotateSpeedRange.x, flyingRotateSpeedRange.y) * attackDir;
         startFlyPos = transform.position;
         hitState = 0;