先新建一个TimeLine
添加Track
using SLSC.LBE; using System; using UnityEngine; using UnityEngine.Playables;public class TestCubeReceiver :MonoBehaviour,INotificationReceiver {public void OnNotify(Playable origin, INotification notification, object context){Debug.LogError("Test Cube Success");} }
using System;using System.ComponentModel; using UnityEngine; using UnityEngine.Playables; using UnityEngine.Timeline;[DisplayName("Cube测试")] [Serializable] public class TestCubeSignal : Marker, INotification, INotificationOptionProvider {public PropertyName id { get; }NotificationFlags INotificationOptionProvider.flags => NotificationFlags.TriggerOnce | NotificationFlags.TriggerInEditMode;}
using System.ComponentModel; using UnityEngine.Timeline; using UnityEngine; [TrackBindingType(typeof(TestCubeReceiver))] [DisplayName("测试Cube")] public class TestCubeSignalTrack :MarkerTrack {}
相机震动例子
using System.ComponentModel; using UnityEngine.Timeline;namespace SLSC.LBE {[TrackBindingType(typeof(ShakeCameraReceiver))][DisplayName("相机震动信号轨道")]public class ShakeCameraSignalTrack : MarkerTrack{} }using UnityEngine.Playables; using UnityEngine.Timeline; using UnityEngine; using System.ComponentModel; using System;namespace SLSC.LBE {[DisplayName("相机震动")][Serializable]public class ShakeCameraSignal : Marker, INotification, INotificationOptionProvider{public float duration;public Vector3 offset;public int vibrato;public PropertyName id { get; }NotificationFlags INotificationOptionProvider.flags => NotificationFlags.TriggerOnce | NotificationFlags.TriggerInEditMode;}}using UnityEngine; using System; using UnityEngine.Playables;namespace SLSC.LBE {public class ShakeCameraReceiver : MonoBehaviour, INotificationReceiver{public void OnNotify(Playable origin, INotification notification, object context){if (notification is ShakeCameraSignal){ShakeCameraSignal signal = (ShakeCameraSignal)notification;SLSCManager.Instance.ShakeCamera(signal.duration,signal.offset,signal.vibrato);}}} }{public void ShakeCamera(float duration, Vector3 offset, int vibrato){//震动CameraOffset物体,即mainCamera的父物体 MainCameraTrans.parent.DOShakePosition(duration, offset, vibrato);}}