summaryrefslogtreecommitdiff
path: root/Assets/Scripts/Unit
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2021-08-18 09:24:21 +0800
committerchai <chaifix@163.com>2021-08-18 09:24:21 +0800
commita7ac1a9881e3730be3d768ce0e505d89a0388e4e (patch)
tree4ab920033f604935d5745418ef525ce8bd4a1d47 /Assets/Scripts/Unit
parent802ffb019f62133fd25376c5b8a8ca0811569d41 (diff)
*parameter
Diffstat (limited to 'Assets/Scripts/Unit')
-rw-r--r--Assets/Scripts/Unit/AnimationData.cs41
-rw-r--r--Assets/Scripts/Unit/Component/UnitAnimation.cs8
-rw-r--r--Assets/Scripts/Unit/Events/EventMesh_Visibility.cs15
-rw-r--r--Assets/Scripts/Unit/Events/EventMesh_Visibility.cs.meta11
-rw-r--r--Assets/Scripts/Unit/TimelineEventProxy.cs8
5 files changed, 33 insertions, 50 deletions
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