diff options
Diffstat (limited to 'Assets/Scripts/Unit/UnitTimeline.cs')
-rw-r--r-- | Assets/Scripts/Unit/UnitTimeline.cs | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/Assets/Scripts/Unit/UnitTimeline.cs b/Assets/Scripts/Unit/UnitTimeline.cs deleted file mode 100644 index 99c6bdaf..00000000 --- a/Assets/Scripts/Unit/UnitTimeline.cs +++ /dev/null @@ -1,125 +0,0 @@ -using System;
-using System.Collections;
-using System.Reflection;
-using System.Collections.Generic;
-using UnityEngine;
-#if UNITY_EDITOR
-using UnityEditor;
-#endif
-
-// 执行帧事件
-[DisallowMultipleComponent]
-public partial class TimelineEventProxy
-{
- public enum EEventType
- {
- EventCamera_Zoom, // 相机聚焦
- EventCamera_Shake, // 相机晃动
- EventCamera_Blur, // 相机模糊
- EventCamera_WhiteOut, // 相机白屏
-
- EventMesh_AfterImage, // 角色残像
- EventMesh_Fade, // 角色透明度
- EventMesh_Gloss, // 角色泛光
-
- EventEnv_Dark,
- EventEnv_Exposure,
-
- EventUI_Drift, //
- EventUI_Blur, //
-
- EventProjectile, // 发射体
- EventEffect, // 特效
- EventSound, // 音效
-
- EventBulletTime, // 子弹时间
- }
-
- public const int kMaxEventsPerFrame = 10;
- public const int FPS = 30; // timeline 每秒采样30次
-
- private int m_PrevFrame = -1;
-
- private UnitAnimation m_UnitAnimation;
-
- private Transform m_Root;
-
- public TimelineEventProxy(Transform root, UnitAnimation unitAnimation = null)
- {
- m_Root = root;
- }
-
- public static Type GetTypeByName(string name)
- {
- Type type = Type.GetType(name);
- return type;
- }
-
- public void ExecuteAnimationEvents(AnimationData animData, float animFrame)
- {
- if (animData == null)
- return;
- int frame = (int)animFrame;
- if (frame != m_PrevFrame)
- {
- for (int i = m_PrevFrame + 1; i <= frame; i++)
- {
- List<int> framesHasEvent = animData.GetAnimationEventFrameIndices();
- if (framesHasEvent.Contains(i))
- {
- List<AnimationEventBase> events = animData.GetAnimationEventsAtFrame(i);
- ExecuteEvents(events);
- ListPool<AnimationEventBase>.Release(events);
- }
- ListPool<int>.Release(framesHasEvent);
- }
- }
- m_PrevFrame = frame;
- }
-
- void ExecuteEvents(List<AnimationEventBase> events)
- {
- if (events == null || events.Count == 0)
- return;
- foreach (var e in events)
- {
- string name = e.type.ToString();
- MethodInfo method = GetType().GetMethod(name, BindingFlags.Instance | BindingFlags.NonPublic, null, new Type[] { typeof(AnimationEventBase) }, null);
- if (method != null)
- {
- object[] param = new object[] { e };
- method.Invoke(this, param);
- }
- }
- }
-
- #region Event handle
-
- void EventEffect(AnimationEventBase animEvent)
- {
- EventEffect effect = animEvent as EventEffect;
- if (effect == null)
- return;
- string path = effect.effectPath;
-#if UNITY_EDITOR
- GameObject prefab = AssetDatabase.LoadAssetAtPath(path, typeof(GameObject)) as GameObject;
- if (prefab != null)
- {
- GameObject root = new GameObject();
-
- GameObject go = GameObject.Instantiate(prefab);
- go.transform.SetParent(root.transform);
- FxClear onClear = root.AddComponent<FxClear>();
- onClear.RunInEditor = true;
- onClear.Initialize(new PlayEffectInfo(path, EffectPlayTypes.Oneshot, m_Root, effect.position, effect.rotation, effect.scale, 0, false));
- }
-#endif
- }
-
- void EventCamera_Shake(AnimationEventBase animEvent)
- {
-
- }
-
- #endregion
-}
\ No newline at end of file |