private void OutputTrackinfo() { if (signals == null) { signals = new List <AnchorSignalEmitter>(); } else { signals.Clear(); } var marks = GetMarkers().GetEnumerator(); while (marks.MoveNext()) { IMarker mark = marks.Current; if (mark is AnchorSignalEmitter) { AnchorSignalEmitter anchor = mark as AnchorSignalEmitter; signals.Add(anchor); } } marks.Dispose(); CreateClips(); }
public void ParseTrack() { foreach (PlayableBinding pb in director.playableAsset.outputs) { if (pb.sourceObject is AnimationTrack) { AnimationTrack track = pb.sourceObject as AnimationTrack; int cnt = track.GetMarkerCount(); var tfTracks = new List <AnchorSignalEmitter>(); var marks = track.GetMarkers().GetEnumerator(); while (marks.MoveNext()) { IMarker mark = marks.Current; if (mark is AnchorSignalEmitter) { tfTracks.Add(mark as AnchorSignalEmitter); } } marks.Dispose(); for (int i = 0; i < tfTracks.Count; i++) { AnchorSignalEmitter sign = tfTracks[i]; Debug.Log(sign.time + " " + sign.position); } } } }
private void OnEnable() { PlayableDirector director = GameObject.FindObjectOfType <PlayableDirector>(); signal = target as AnchorSignalEmitter; track = signal.parent.parent as TrackAsset; bindTf = ExternalHelp.FetchAttachOfTrack(director, track); }
private void CreateClips() { if (signals != null && signals.Count > 0) { ClearCurves(ref m_curves_pos); ClearCurves(ref m_curves_rot); for (int i = 0; i < signals.Count; i++) { AnchorSignalEmitter sign = signals[i]; float time = (float)sign.time; m_curves_pos[0].AddKey(time, sign.position.x); m_curves_pos[1].AddKey(time, sign.position.y); m_curves_pos[2].AddKey(time, sign.position.z); m_curves_rot[0].AddKey(time, sign.rotation.x); m_curves_rot[1].AddKey(time, sign.rotation.y); m_curves_rot[2].AddKey(time, sign.rotation.z); } var clips = GetClips(); if (clips != null) { TimelineClip xclip = clips.FirstOrDefault(); if (xclip == null) { Debug.LogWarning("transform clip con't be null"); } else { AnchorAsset asset = xclip.asset as AnchorAsset; asset.clip_pos = m_curves_pos; asset.clip_rot = m_curves_rot; BindObj(asset); } } } }