Beispiel #1
0
            public static void CreateAnimationCurves(TimelineClip clip)
            {
                FieldInfo     field     = clip.GetType().GetField("m_AnimationCurves", BindingFlags.NonPublic | BindingFlags.Instance);
                AnimationClip animation = CreateAnimationClipForTrack("Clip Parameters", clip.parentTrack, true);

                field.SetValue(clip, animation);
            }
Beispiel #2
0
        public static void SetClipExtrapolationMode(TimelineClip clip, string propertyName, TimelineClip.ClipExtrapolation mode)
        {
            // FIXME: get rid of reflection
            var pro = clip.GetType().GetProperty(propertyName);

            pro.SetValue(clip, Convert.ChangeType(mode, pro.PropertyType), null);
        }
        public static TrackAsset GetTrackBasedOnClip(TimelineClip clip)
        {
            // FIXME: get rid of Reflection
            var trackProp = clip.GetType().GetProperty("parentTrack", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);

            return(trackProp.GetValue(clip, null) as TrackAsset);
        }
Beispiel #4
0
        /// <summary>
        /// All manipulation through reflection
        /// Highly prompt to changes, use at risk
        /// </summary>
        public static void SetClipExtrapolationMode(TimelineClip clip, string propertyName, TimelineClip.ClipExtrapolation mode)
        {
            var pro = clip.GetType().GetProperty(propertyName);

            if (pro == null)
            {
                UnityEngine.Debug.LogWarning("Error in getting property: " + clip + "." + propertyName);
                return;
            }
            pro.SetValue(clip, Convert.ChangeType(mode, pro.PropertyType), null);
        }
        void Replace(TimelineClip _oldclip, AnimationClip _clip, AnimationTrack _selectedTrack, TimelineAsset _timelineAsset)
        {
            var clipInField = _oldclip.GetType().GetField("m_ClipIn", BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
            var clipInValue = (double)clipInField.GetValue(_oldclip);

            _timelineAsset.DeleteClip(_oldclip);

            var newAnimClip = _selectedTrack.CreateClip(newClip);

            newAnimClip.start       = _oldclip.start;;
            newAnimClip.duration    = _oldclip.duration;
            newAnimClip.displayName = _clip.name;
            newAnimClip.timeScale   = _oldclip.timeScale;
            newAnimClip.clipIn      = clipInValue;
        }