summaryrefslogtreecommitdiff
path: root/Assets/Scripts/Unit/Component
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/Scripts/Unit/Component')
-rw-r--r--Assets/Scripts/Unit/Component/MonsterAnimation.cs10
-rw-r--r--Assets/Scripts/Unit/Component/MonsterState.cs52
-rw-r--r--Assets/Scripts/Unit/Component/UnitCollider.cs10
3 files changed, 67 insertions, 5 deletions
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<int/*hitbox hash*/, List<int/*unitController hash*/>> hitMask = new Dictionary<int, List<int>>();
+ private Dictionary<int/*hitbox hash*/, List<int/*unitController hash*/>> m_HitMask = new Dictionary<int, List<int>>();
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<int> record;
- if (!hitMask.TryGetValue(colliderHash, out record))
+ if (!m_HitMask.TryGetValue(colliderHash, out record))
{
record = new List<int>();
- 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<int> record;
- if(!hitMask.TryGetValue(colliderHash, out record))
+ if(!m_HitMask.TryGetValue(colliderHash, out record))
{
return true;
}