diff options
author | chai <chaifix@163.com> | 2022-06-21 00:26:32 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2022-06-21 00:26:32 +0800 |
commit | fb8dba84fe70d4bad6d22900716a67b02766448a (patch) | |
tree | 27d188de0a542f2bfd334e110dfa81a6a63d3eae /Erika/Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs | |
parent | 3ec81453d5edbf95d012d4929d82ceef52ec69e0 (diff) |
- meta
Diffstat (limited to 'Erika/Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs')
-rw-r--r-- | Erika/Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs | 35 |
1 files changed, 27 insertions, 8 deletions
diff --git a/Erika/Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs b/Erika/Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs index da16b947..a5de6c57 100644 --- a/Erika/Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs +++ b/Erika/Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs @@ -1,13 +1,17 @@ #define ANIM_CROSS_FADE + using System; using System.Collections; using System.Collections.Generic; using UnityEngine; + #if UNITY_EDITOR -using UnityEditor; +using UnityEditor;
#endif - -// 单独一层动画 +
+//http://unitylore.org/wiki/doku.php?id=l3y0gj
+
+// 单独一层动画
public class AnimatorLayerInfo { public int layer; @@ -186,12 +190,12 @@ public class AnimatorLayerInfo this.m_UnitAnimation = unitAnimation; this.m_Animator = animator; this.layer = layer; - m_CalcPlaybackTimeCoroutine = unitAnimation.StartCoroutine(CalcPlaybackRealTimeCoroutine()); + m_CalcPlaybackTimeCoroutine = unitAnimation.StartCoroutine(CoCalcPlaybackRealTimeCoroutine()); m_TimelineEventProxy = new TimelineEventProxy(unitAnimation.owner); applySpeedCurve = true; } - IEnumerator CalcPlaybackRealTimeCoroutine() + IEnumerator CoCalcPlaybackRealTimeCoroutine() { while (true) { @@ -224,6 +228,13 @@ public class AnimatorLayerInfo } } + /// <summary>
+ /// cross fade,不同状态间切换的间隔预先设置或者动态根据Pose的差异计算
+ /// </summary>
+ /// <param name="animState"></param>
+ /// <param name="normalizedTransitionDuration"></param>
+ /// <param name="normalizedTimeOffset"></param>
+ /// <param name="normalizedTransitionTime"></param> public void OnCrossFade(string animState, float normalizedTransitionDuration, float normalizedTimeOffset, float normalizedTransitionTime ) { m_CurrentState = animState;
@@ -233,6 +244,11 @@ public class AnimatorLayerInfo playbackSpeed = 1;
}
+ /// <summary>
+ /// 直接播放动作
+ /// </summary>
+ /// <param name="animState"></param>
+ /// <param name="normalizedTime"></param>
public void OnPlay(string animState, float normalizedTime) { m_CurrentState = animState; @@ -256,9 +272,12 @@ public class UnitAnimation : UnitComponent public virtual AnimatorLayerInfo baseLayer
{
get { return layers[0]; }
- } - - public AnimatorLayerInfo layer + }
+
+ /// <summary>
+ /// 角色动作只有一层,不使用layer mask和layer syncing
+ /// </summary> + public AnimatorLayerInfo layer { get
{
|