From 86ec4522be1d0b932006801c7bf2297adc9f0028 Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 30 Aug 2021 21:11:54 +0800 Subject: *misc --- Assets/Scripts/Unit/Component/MonsterAnimation.cs | 10 +++++ Assets/Scripts/Unit/Component/MonsterState.cs | 52 +++++++++++++++++++++++ Assets/Scripts/Unit/Component/UnitCollider.cs | 10 ++--- 3 files changed, 67 insertions(+), 5 deletions(-) (limited to 'Assets/Scripts/Unit/Component') diff --git a/Assets/Scripts/Unit/Component/MonsterAnimation.cs b/Assets/Scripts/Unit/Component/MonsterAnimation.cs index a59443e0..4db4b07f 100644 --- a/Assets/Scripts/Unit/Component/MonsterAnimation.cs +++ b/Assets/Scripts/Unit/Component/MonsterAnimation.cs @@ -96,5 +96,15 @@ public class MonsterAnimation : UnitAnimation m_Animator.Play("HitLight", 0, 0); //m_Animator.CrossFade("HitLight", 0.05f, 0, 0, 0); } + public void AnimHitAir() + { + m_Animator.Play("HitAir", 0, 0); + //m_Animator.CrossFade("HitLight", 0.05f, 0, 0, 0); + } + + public void AnimRise() + { + m_Animator.CrossFade("Rise", 0); + } } diff --git a/Assets/Scripts/Unit/Component/MonsterState.cs b/Assets/Scripts/Unit/Component/MonsterState.cs index b1ff9cbd..cd2ed8e5 100644 --- a/Assets/Scripts/Unit/Component/MonsterState.cs +++ b/Assets/Scripts/Unit/Component/MonsterState.cs @@ -76,6 +76,10 @@ public class MonsterState : UnitState public struct HitLightParam { } + public struct HitAirParam { } + + public struct RiseParam { } + #region Idle IEnumerator Idle(IdleParam param) @@ -121,6 +125,54 @@ public class MonsterState : UnitState { } + #endregion + + #region HitAir + + IEnumerator HitAir(HitAirParam param) + { + m_Owner.monsterAnimation.AnimHitAir(); + yield return null; + while (true) + { + bool reachEnd = m_Owner.monsterAnimation.layers[0].playbackNomralizedTime == 1; + if (reachEnd) + { + //yield return new WaitForSeconds(1f); + ChangeState(EUnitState.Rise, new RiseParam()); + } + yield return null; + } + } + + void OnHitAirExit(EUnitState nextState) + { + } + + #endregion + + #region Rise + + IEnumerator Rise(RiseParam param) + { + m_Owner.monsterAnimation.AnimRise(); + yield return null; + while (true) + { + bool reachEnd = m_Owner.monsterAnimation.layers[0].playbackNomralizedTime == 1; + if (reachEnd) + { + ChangeState(EUnitState.Idle, new IdleParam()); + } + yield return null; + } + } + + void OnRiseExit(EUnitState nextState) + { + } + + #endregion diff --git a/Assets/Scripts/Unit/Component/UnitCollider.cs b/Assets/Scripts/Unit/Component/UnitCollider.cs index f3170d1b..ac9698a8 100644 --- a/Assets/Scripts/Unit/Component/UnitCollider.cs +++ b/Assets/Scripts/Unit/Component/UnitCollider.cs @@ -8,7 +8,7 @@ public class UnitCollider : UnitComponent { public bool showGizmos; - private Dictionary> hitMask = new Dictionary>(); + private Dictionary> m_HitMask = new Dictionary>(); public override void Awake() { @@ -49,16 +49,16 @@ public class UnitCollider : UnitComponent // 动作切换,重置collider mask public void OnAnimationChange() { - hitMask.Clear(); + m_HitMask.Clear(); } public void RecordCollision(int colliderHash, int targetHash) { List record; - if (!hitMask.TryGetValue(colliderHash, out record)) + if (!m_HitMask.TryGetValue(colliderHash, out record)) { record = new List(); - hitMask.Add(colliderHash, record); + m_HitMask.Add(colliderHash, record); } record.Add(targetHash); } @@ -66,7 +66,7 @@ public class UnitCollider : UnitComponent public bool CanCollide(int colliderHash, int targetHash) { List record; - if(!hitMask.TryGetValue(colliderHash, out record)) + if(!m_HitMask.TryGetValue(colliderHash, out record)) { return true; } -- cgit v1.1-26-g67d0