diff options
author | chai <chaifix@163.com> | 2022-06-23 07:02:16 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2022-06-23 07:02:16 +0800 |
commit | 10d011d06c8838c91435615b577f36cc893c2f9a (patch) | |
tree | be7be9054c05cd898de48296650ee13e6b344e56 /Erika/Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs | |
parent | bd7fe7bd341f6d3e929a4a9118efdd52a0da2275 (diff) |
* animation
Diffstat (limited to 'Erika/Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs')
-rw-r--r-- | Erika/Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs | 39 |
1 files changed, 22 insertions, 17 deletions
diff --git a/Erika/Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs b/Erika/Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs index 529cd2f5..ac416acb 100644 --- a/Erika/Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs +++ b/Erika/Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs @@ -149,16 +149,11 @@ public class UnitAnimation : UnitComponent /// <param name="animState"></param>
/// <param name="layerIndex"></param>
/// <param name="normalizedTime"></param>
- public void Play(string animState, int layerIndex = 0, float normalizedTime = float.NegativeInfinity) + public void Play(string targetAction, float normalizedTime = float.NegativeInfinity) {
- //AnimatorLayerInfo layer = this.layers[layerIndex];
- //if (layer == null)
- // return;
- //layer.OnPlay(animState, normalizedTime);
+ m_CurrentAction = targetAction;
- m_CurrentAction = animState;
-
- m_Animator.Play(animState, layerIndex, normalizedTime);
+ m_Animator.Play(targetAction, 0, normalizedTime);
m_TimelineEventProxy.ResetPrevAnimationData();
UnitRootMotion rm = m_Owner.GetComponent<UnitRootMotion>();
@@ -176,16 +171,26 @@ public class UnitAnimation : UnitComponent /// <param name="layerIndex"></param>
/// <param name="normalizedTimeOffset"></param>
/// <param name="normalizedTransitionTime"></param>
- public void CrossFade(string animState, float normalizedTransitionDuration, int layerIndex = 0, float normalizedTimeOffset = float.NegativeInfinity, float normalizedTransitionTime = 0.0f)
- {
- //AnimatorLayerInfo layer = this.layers[layerIndex];
- //if (layer == null)
- // return;
- //layer.OnCrossFade(animState, normalizedTransitionDuration, normalizedTimeOffset, normalizedTransitionTime);
-
- m_CurrentAction = animState;
+ public void CrossFade(string targetAction, float normalizedTransitionDuration, float normalizedTimeOffset = float.NegativeInfinity, float normalizedTransitionTime = 0.0f)
+ {
+ TransitionData transition = m_ActionData.GetTransitionData(m_CurrentAction, targetAction);
+ if(transition != null)
+ {
+ if(transition.type == TransitionData.TransitionType.NormalizedTime)
+ {
+ m_Animator.CrossFade(targetAction, transition.duration, 0, normalizedTimeOffset, normalizedTransitionTime);
+ }
+ else if(transition.type == TransitionData.TransitionType.FixedTime)
+ {
+ m_Animator.CrossFadeInFixedTime(targetAction, transition.duration, 0, normalizedTimeOffset, normalizedTransitionTime);
+ }
+ }
+ else
+ {
+ m_Animator.CrossFade(targetAction, normalizedTransitionDuration, 0, normalizedTimeOffset, normalizedTransitionTime);
+ }
+ m_CurrentAction = targetAction;
- m_Animator.CrossFade(animState.ToString(), normalizedTransitionDuration, layerIndex, normalizedTimeOffset, normalizedTransitionTime);
m_TimelineEventProxy.ResetPrevAnimationData();
UnitRootMotion rm = m_Owner.GetComponent<UnitRootMotion>();
|