|
@@ -47,6 +47,8 @@ public class Demonic : MoveCharacter
|
|
|
|
|
|
|
|
[Header("验证功能开关")]
|
|
[Header("验证功能开关")]
|
|
|
public bool upFirstAfterWeaknessOrNot; //虚弱结束后是否先升高
|
|
public bool upFirstAfterWeaknessOrNot; //虚弱结束后是否先升高
|
|
|
|
|
+
|
|
|
|
|
+ public bool isBeBlownUp; //被击飞
|
|
|
private void Awake()
|
|
private void Awake()
|
|
|
{
|
|
{
|
|
|
}
|
|
}
|
|
@@ -524,23 +526,23 @@ public class Demonic : MoveCharacter
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|
|
|
case CharacterState.Weak:
|
|
case CharacterState.Weak:
|
|
|
-
|
|
|
|
|
if (rb.linearVelocity.magnitude > 1)
|
|
if (rb.linearVelocity.magnitude > 1)
|
|
|
{
|
|
{
|
|
|
- if (ani.GetCurrentAnimatorClipInfo(0)[0].clip.name != "hitted")
|
|
|
|
|
|
|
+ if (!isBeBlownUp)
|
|
|
{
|
|
{
|
|
|
|
|
+ isBeBlownUp = true;
|
|
|
ani.Play("hitted", 0, 0);
|
|
ani.Play("hitted", 0, 0);
|
|
|
aniCollider.Play("Hurt", 0, 0);
|
|
aniCollider.Play("Hurt", 0, 0);
|
|
|
}
|
|
}
|
|
|
Vector3 vel = rb.linearVelocity;
|
|
Vector3 vel = rb.linearVelocity;
|
|
|
- if (foot.TrigGround && vel.y < 0)
|
|
|
|
|
|
|
+ if (foot.TrigGround && vel.y <= 0)
|
|
|
{
|
|
{
|
|
|
- vel.y = 0;
|
|
|
|
|
|
|
+ vel = Vector3.zero;
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
|
{
|
|
{
|
|
|
- vel.y += extraFallGravity * Time.deltaTime;
|
|
|
|
|
vel.x -= vel.x * decelerationRatio * Time.deltaTime;
|
|
vel.x -= vel.x * decelerationRatio * Time.deltaTime;
|
|
|
|
|
+ vel.y += extraFallGravity * Time.deltaTime;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//vel.y = vel.y * (1 - decelerationRatio * Time.deltaTime);
|
|
//vel.y = vel.y * (1 - decelerationRatio * Time.deltaTime);
|
|
@@ -549,6 +551,10 @@ public class Demonic : MoveCharacter
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
|
{
|
|
{
|
|
|
|
|
+ if (isBeBlownUp)
|
|
|
|
|
+ {
|
|
|
|
|
+ isBeBlownUp = false;
|
|
|
|
|
+ }
|
|
|
if (weakTime <= -0.1)
|
|
if (weakTime <= -0.1)
|
|
|
{
|
|
{
|
|
|
if (upFirstAfterWeaknessOrNot)
|
|
if (upFirstAfterWeaknessOrNot)
|
|
@@ -570,22 +576,18 @@ public class Demonic : MoveCharacter
|
|
|
{
|
|
{
|
|
|
ChangeState(CharacterState.Idle);
|
|
ChangeState(CharacterState.Idle);
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
- else
|
|
|
|
|
|
|
+ else
|
|
|
{
|
|
{
|
|
|
if (ani.GetCurrentAnimatorClipInfo(0)[0].clip.name != "weak")
|
|
if (ani.GetCurrentAnimatorClipInfo(0)[0].clip.name != "weak")
|
|
|
{
|
|
{
|
|
|
ani.Play("weak", 0, 0);
|
|
ani.Play("weak", 0, 0);
|
|
|
aniCollider.Play("Weak", 0, 0);
|
|
aniCollider.Play("Weak", 0, 0);
|
|
|
rb.linearVelocity = Vector3.zero;
|
|
rb.linearVelocity = Vector3.zero;
|
|
|
- weakTime = totalWeakTime;
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- rb.linearVelocity = new Vector3(velocityAddition, rb.linearVelocity.y,0);
|
|
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
break;
|
|
break;
|
|
|
case CharacterState.BaGua:
|
|
case CharacterState.BaGua:
|
|
|
if (adsorbTime < 0.5)
|
|
if (adsorbTime < 0.5)
|