public void OnNotify(Playable origin, INotification notification) { if (director == null) { Awake(); } if (notification is JumpSignalEmmiter) { JumpSignalEmmiter signal = notification as JumpSignalEmmiter; director.time = signal.jumpTime; } else if (notification is SlowSignalEmitter) { SlowSignalEmitter signal = notification as SlowSignalEmitter; director.playableGraph.GetRootPlayable(0).SetSpeed(signal.slowRate); } else if (notification is ActiveSignalEmmiter) { ActiveSignalEmmiter signal = notification as ActiveSignalEmmiter; TrackAsset track = TimelineUtil.GetRootTrack(signal); Transform tf = ExternalHelp.FetchAttachOfTrack(director, track); if (tf) { tf.gameObject.SetActive(signal.Active); } } }
void Update() { if (Input.GetKeyUp(KeyCode.Space)) { director.Stop(); director.time = 0d; director.Play(); } if (Input.GetKeyUp(KeyCode.F1)) { var output = ScriptPlayableOutput.Create(director.playableGraph, ""); JumpSignalEmmiter sign = ScriptableObject.CreateInstance <JumpSignalEmmiter>(); sign.jumpTime = 0; output.PushNotification(Playable.Null, sign); } if (Input.GetKeyUp(KeyCode.F3)) { director.Pause(); backward = true; } if (Input.GetKeyUp(KeyCode.F4)) { backward = false; director.Play(); } if (backward) { director.time = director.time - Time.deltaTime; director.Evaluate(); } }
void Update() { if (Input.GetKeyUp(KeyCode.F1)) { var output = ScriptPlayableOutput.Create(director.playableGraph, ""); output.AddNotificationReceiver(this); JumpSignalEmmiter sign = ScriptableObject.CreateInstance <JumpSignalEmmiter>(); sign.jumpTime = 0; output.PushNotification(Playable.Null, sign); } }
public void OnNotify(Playable origin, INotification notification, object context) { if (notification is JumpSignalEmmiter) { JumpSignalEmmiter signal = notification as JumpSignalEmmiter; director.time = signal.jumpTime; } else if (notification is SlowSignalEmitter) { SlowSignalEmitter signal = notification as SlowSignalEmitter; director.playableGraph.GetRootPlayable(0).SetSpeed(signal.slowRate); } }