From a7ac1a9881e3730be3d768ce0e505d89a0388e4e Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 18 Aug 2021 09:24:21 +0800 Subject: *parameter --- Assets/Scripts/Unit/AnimationData.cs | 41 ++++++++++++++-------- Assets/Scripts/Unit/Component/UnitAnimation.cs | 8 ++++- Assets/Scripts/Unit/Events/EventMesh_Visibility.cs | 15 -------- .../Unit/Events/EventMesh_Visibility.cs.meta | 11 ------ Assets/Scripts/Unit/TimelineEventProxy.cs | 8 ----- 5 files changed, 33 insertions(+), 50 deletions(-) delete mode 100644 Assets/Scripts/Unit/Events/EventMesh_Visibility.cs delete mode 100644 Assets/Scripts/Unit/Events/EventMesh_Visibility.cs.meta (limited to 'Assets/Scripts/Unit') diff --git a/Assets/Scripts/Unit/AnimationData.cs b/Assets/Scripts/Unit/AnimationData.cs index a84afd9f..84cc1e4c 100644 --- a/Assets/Scripts/Unit/AnimationData.cs +++ b/Assets/Scripts/Unit/AnimationData.cs @@ -127,21 +127,32 @@ public class AnimationData : ScriptableObject return null; } - //public bool HasParameter(string parameterName, float normalizedTime) - //{ - // if (!parameters.ContainsKey(parameterName)) - // return false; - // var parameter = parameters[parameterName]; - // parameter.setters.Sort((AnimationParameter.Setter a, AnimationParameter.Setter b) => - // { - // return a.normalizedTime - b.normalizedTime < 0 ? -1 : 1; - // }); - //} - - //public float GetParameter(string parameter, float normalizedTime) - //{ - - //} + public bool HasParameter(EAnimationParameter parameterName) + { + if (!parameters.ContainsKey(parameterName)) + return false; + return true; + } + + public float GetParameter(EAnimationParameter parameterName, float normalizedTime) + { + if (!parameters.ContainsKey(parameterName)) + return 0; + var parameter = parameters[parameterName]; + parameter.setters.Sort((AnimationParameter.Setter a, AnimationParameter.Setter b) => + { + return a.normalizedTime - b.normalizedTime < 0 ? -1 : 1; + }); + float value = 0; + for (int i = 0; i < parameter.setters.Count; ++i) + { + AnimationParameter.Setter setter = parameter.setters[i]; + if (setter.normalizedTime > normalizedTime) + break; + value = setter.value; + } + return value; + } public bool HasCurve(EAnimationCurve curve) { diff --git a/Assets/Scripts/Unit/Component/UnitAnimation.cs b/Assets/Scripts/Unit/Component/UnitAnimation.cs index 993998a0..7491d44c 100644 --- a/Assets/Scripts/Unit/Component/UnitAnimation.cs +++ b/Assets/Scripts/Unit/Component/UnitAnimation.cs @@ -153,6 +153,8 @@ public class AnimatorLayerInfo } } + public bool applySpeedCurve { get; set; } + UnitAnimation m_UnitAnimation; Coroutine m_CalcPlaybackTimeCoroutine; @@ -166,6 +168,7 @@ public class AnimatorLayerInfo this.layer = layer; m_CalcPlaybackTimeCoroutine = unitAnimation.StartCoroutine(CalcPlaybackRealTimeCoroutine()); m_TimelineEventProxy = new TimelineEventProxy(unitAnimation.owner.transform, unitAnimation.owner); + applySpeedCurve = true; } IEnumerator CalcPlaybackRealTimeCoroutine() @@ -186,10 +189,13 @@ public class AnimatorLayerInfo { // 执行事件 m_TimelineEventProxy.ExecuteAnimationEvents(animationData, playbackTimeInSeconds * TimelineEventProxy.FPS); - if(animationData.speedCurve != null) + + // 播放速度控制 + if(applySpeedCurve && animationData.speedCurve != null) { playbackSpeed = animationData.speedCurve.Evaluate(playbackNomralizedTime); } + } } diff --git a/Assets/Scripts/Unit/Events/EventMesh_Visibility.cs b/Assets/Scripts/Unit/Events/EventMesh_Visibility.cs deleted file mode 100644 index d670ad13..00000000 --- a/Assets/Scripts/Unit/Events/EventMesh_Visibility.cs +++ /dev/null @@ -1,15 +0,0 @@ -using UnityEngine; - -public class EventMesh_Visibility : AnimationEventBase -{ - public override TimelineEventProxy.EEventType type { get { return TimelineEventProxy.EEventType.EventMesh_Visibility; } } - public override string shortName { get { return "V"; } } - - [Tooltip("Visibility")] - public bool visible; - - public bool fade; - - public float fadeDuration; - -} \ No newline at end of file diff --git a/Assets/Scripts/Unit/Events/EventMesh_Visibility.cs.meta b/Assets/Scripts/Unit/Events/EventMesh_Visibility.cs.meta deleted file mode 100644 index b7dd6f3d..00000000 --- a/Assets/Scripts/Unit/Events/EventMesh_Visibility.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f555b593e51b2a64c80c0b40bf052b07 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/Unit/TimelineEventProxy.cs b/Assets/Scripts/Unit/TimelineEventProxy.cs index 5862facf..cb30e900 100644 --- a/Assets/Scripts/Unit/TimelineEventProxy.cs +++ b/Assets/Scripts/Unit/TimelineEventProxy.cs @@ -125,13 +125,5 @@ public partial class TimelineEventProxy } - void EventMesh_Visibility(AnimationEventBase animEvent) - { - EventMesh_Visibility visibility = animEvent as EventMesh_Visibility; - if (visibility == null) - return; - - } - #endregion } \ No newline at end of file -- cgit v1.1-26-g67d0