コード例 #1
0
ファイル: AnchorTrack.cs プロジェクト: mengtest/timeline-1
    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();
    }
コード例 #2
0
ファイル: TimelineEntry.cs プロジェクト: sebjf/timeline-1
    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);
                }
            }
        }
    }
コード例 #3
0
        private void OnEnable()
        {
            PlayableDirector director = GameObject.FindObjectOfType <PlayableDirector>();

            signal = target as AnchorSignalEmitter;
            track  = signal.parent.parent as TrackAsset;
            bindTf = ExternalHelp.FetchAttachOfTrack(director, track);
        }
コード例 #4
0
ファイル: AnchorTrack.cs プロジェクト: mengtest/timeline-1
    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);
                }
            }
        }
    }