using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; namespace TweenAnimation { // tween播放过程中产生事件 [Serializable] public class TweenEvent { public string name; // 事件名 public float time; // 事件触发时间 public UnityEvent eventHandler; // 回调函数 } public class TweenAnimation : MonoBehaviour { public enum EventTriggeredDirection { None = 0, Forward = 1, Backward = 2, } public enum PlaybackStyle { Once, Loop, PingPong, } public string description = "No Description"; public List modules; public float duration; public PlaybackStyle playbackStyle; public EventTriggeredDirection eventTriggeredDirection; // 回放次数,0是不限制,默认是0 public int playbackLimit; public List eventList; public TweenAnimation() { this.playbackStyle = PlaybackStyle.Loop; this.playbackLimit = 0; this.duration = 1; this.modules = new List(); } public void AddModule(TweenModule module) { if (modules == null) modules = new List(); modules.Add(module); } public void RemoveModule(TweenModule module) { if (modules == null) return; if (modules.Contains(module)) modules.Remove(module); } } }