|
@@ -45,6 +45,8 @@ public class Demonic : MoveCharacter
|
|
|
public int dropSoulMin = 1;
|
|
public int dropSoulMin = 1;
|
|
|
public float dropSoulAngle = 60f;
|
|
public float dropSoulAngle = 60f;
|
|
|
|
|
|
|
|
|
|
+ [Header("验证功能开关")]
|
|
|
|
|
+ public bool upFirstAfterWeaknessOrNot; //虚弱结束后是否先升高
|
|
|
private void Awake()
|
|
private void Awake()
|
|
|
{
|
|
{
|
|
|
}
|
|
}
|
|
@@ -268,7 +270,7 @@ public class Demonic : MoveCharacter
|
|
|
return false;
|
|
return false;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public void AdjustHeight()
|
|
|
|
|
|
|
+ public bool AdjustHeight()
|
|
|
{
|
|
{
|
|
|
if (canFly)
|
|
if (canFly)
|
|
|
{
|
|
{
|
|
@@ -277,14 +279,17 @@ public class Demonic : MoveCharacter
|
|
|
Vector3 pos = transform.position;
|
|
Vector3 pos = transform.position;
|
|
|
pos.y -= flyUpSpeed * Time.deltaTime;
|
|
pos.y -= flyUpSpeed * Time.deltaTime;
|
|
|
transform.position = pos;
|
|
transform.position = pos;
|
|
|
|
|
+ return false;
|
|
|
}
|
|
}
|
|
|
else if (transform.position.y - flyHeight < -0.1f)
|
|
else if (transform.position.y - flyHeight < -0.1f)
|
|
|
{
|
|
{
|
|
|
Vector3 pos = transform.position;
|
|
Vector3 pos = transform.position;
|
|
|
pos.y += flyUpSpeed * Time.deltaTime;
|
|
pos.y += flyUpSpeed * Time.deltaTime;
|
|
|
transform.position = pos;
|
|
transform.position = pos;
|
|
|
|
|
+ return false;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ return true;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public override void OnState()
|
|
public override void OnState()
|
|
@@ -325,7 +330,11 @@ public class Demonic : MoveCharacter
|
|
|
ChangeState(CharacterState.Run);
|
|
ChangeState(CharacterState.Run);
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
- AdjustHeight();
|
|
|
|
|
|
|
+
|
|
|
|
|
+ if (!upFirstAfterWeaknessOrNot)
|
|
|
|
|
+ {
|
|
|
|
|
+ AdjustHeight();
|
|
|
|
|
+ }
|
|
|
rb.velocity = Vector3.right * velocityAddition;
|
|
rb.velocity = Vector3.right * velocityAddition;
|
|
|
break;
|
|
break;
|
|
|
case CharacterState.Run:
|
|
case CharacterState.Run:
|
|
@@ -378,7 +387,10 @@ public class Demonic : MoveCharacter
|
|
|
Turn();
|
|
Turn();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- AdjustHeight();
|
|
|
|
|
|
|
+ if (!upFirstAfterWeaknessOrNot)
|
|
|
|
|
+ {
|
|
|
|
|
+ AdjustHeight();
|
|
|
|
|
+ }
|
|
|
break;
|
|
break;
|
|
|
case CharacterState.Rush:
|
|
case CharacterState.Rush:
|
|
|
if (isAttack)
|
|
if (isAttack)
|
|
@@ -430,7 +442,7 @@ public class Demonic : MoveCharacter
|
|
|
Turn();
|
|
Turn();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- AdjustHeight();
|
|
|
|
|
|
|
+ //AdjustHeight();
|
|
|
break;
|
|
break;
|
|
|
case CharacterState.Rise:
|
|
case CharacterState.Rise:
|
|
|
if (rb.velocity.y <= 0)
|
|
if (rb.velocity.y <= 0)
|
|
@@ -549,7 +561,26 @@ public class Demonic : MoveCharacter
|
|
|
}
|
|
}
|
|
|
if (weakTime <= 0)
|
|
if (weakTime <= 0)
|
|
|
{
|
|
{
|
|
|
- ChangeState(CharacterState.Idle);
|
|
|
|
|
|
|
+ if (upFirstAfterWeaknessOrNot)
|
|
|
|
|
+ {
|
|
|
|
|
+ if (AdjustHeight())
|
|
|
|
|
+ {
|
|
|
|
|
+ ChangeState(CharacterState.Idle);
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ if (ani.GetCurrentAnimatorClipInfo(0)[0].clip.name != "walk")
|
|
|
|
|
+ {
|
|
|
|
|
+ ani.Play("walk", 0, 0);
|
|
|
|
|
+ aniCollider.Play("Walk", 0, 0);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ ChangeState(CharacterState.Idle);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|
|
@@ -748,6 +779,7 @@ public class Demonic : MoveCharacter
|
|
|
break;
|
|
break;
|
|
|
case CharacterState.Weak:
|
|
case CharacterState.Weak:
|
|
|
weakTime = totalWeakTime;
|
|
weakTime = totalWeakTime;
|
|
|
|
|
+ flyHeight = Random.Range(minHeight, maxHeight);
|
|
|
break;
|
|
break;
|
|
|
case CharacterState.Float:
|
|
case CharacterState.Float:
|
|
|
canMove = false;
|
|
canMove = false;
|