Esempio n. 1
0
        private UnityEngine.HumanPose GetPoseInSubTrackSpace(float time)
        {
            // Compute the clapped, padded, search time.
            float clampTime  = Mathf.Clamp(time, 0, Duration);
            float paddedTime = PaddedClipStartTime + clampTime;
            float searchTime = paddedTime;

            // Search through tracks to find subtrack corresponding to current time.
            AnimTrackBase track = null;

            for (int i = 0; i < m_SubTracks.Count; i++)
            {
                track = m_SubTracks[i];
                if (searchTime - track.Duration <= 0)
                {
                    break;
                }
                searchTime -= track.Duration;
            }
            // searchTime should be in [0,track.Duration]

            // Return the pose sampled from the chosen subtrack.
            return((track != null) ? track.GetPose(searchTime) : new UnityEngine.HumanPose()); // safeguard against null
        }
Esempio n. 2
0
 public void AddTrack(AnimTrackBase track)
 {
     m_SubTracks.Add(track);
     track.PropertiesChanged += OnSubTrackPropertiesChanged;
     track.OnValidate();
 }