summaryrefslogtreecommitdiff
path: root/Erika/Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2022-06-21 00:26:32 +0800
committerchai <chaifix@163.com>2022-06-21 00:26:32 +0800
commitfb8dba84fe70d4bad6d22900716a67b02766448a (patch)
tree27d188de0a542f2bfd334e110dfa81a6a63d3eae /Erika/Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs
parent3ec81453d5edbf95d012d4929d82ceef52ec69e0 (diff)
- meta
Diffstat (limited to 'Erika/Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs')
-rw-r--r--Erika/Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs35
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
{