From 491fab84700fd96a5140000679a11ca93349c8d1 Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 9 Sep 2021 14:58:31 +0800 Subject: *air combo --- .../Unit/Components/UnitState/MonsterState.cs | 41 ++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) (limited to 'Assets/Scripts/Unit/Components/UnitState/MonsterState.cs') diff --git a/Assets/Scripts/Unit/Components/UnitState/MonsterState.cs b/Assets/Scripts/Unit/Components/UnitState/MonsterState.cs index db68493b..c2a581b1 100644 --- a/Assets/Scripts/Unit/Components/UnitState/MonsterState.cs +++ b/Assets/Scripts/Unit/Components/UnitState/MonsterState.cs @@ -16,6 +16,7 @@ public class MonsterState : UnitState HitLight, HitAir, + HitInAir, HitGround, HitFall, KnockDown, @@ -80,6 +81,8 @@ public class MonsterState : UnitState public struct RiseParam { } + public struct HitInAirParam { } + #region Idle IEnumerator Idle(IdleParam param) @@ -149,12 +152,46 @@ public class MonsterState : UnitState void OnHitAirExit(EUnitState nextState) { + } + + #endregion + + #region HitInAir + + IEnumerator HitInAir(HitInAirParam param) + { + ((MonsterController)owner).FaceToFacePC(); + m_Owner.monsterAnimation.AnimHitInAir(); + yield return null; + float vy = -1f; + float g = -15.8f; + while (true) + { + bool reachEnd = m_Owner.monsterAnimation.baseLayer.playbackNormalizedTime == 1; + if (reachEnd) + { + vy += g * Time.deltaTime; + Vector3 pos = owner.transform.position; + pos.y += vy * Time.deltaTime; + if(pos.y <= 0) + { + yield return new WaitForSeconds(0.5f); + ChangeState(EUnitState.Rise, new RiseParam()); + } + owner.transform.position = pos; + } + yield return null; + } } + void OnHitInAirExit(EUnitState nextState) + { + } + #endregion - + #region Rise - + IEnumerator Rise(RiseParam param) { m_Owner.monsterAnimation.AnimRise(); -- cgit v1.1-26-g67d0