/// <summary> /// Creates an AnimationClip to store animated properties for the attached PlayableAsset. /// </summary> /// <remarks> /// If curves already exists for this track, this method produces no result regardless of /// the value specified for curvesClipName. /// </remarks> /// <remarks> /// When used from the editor, this method attempts to save the created curves clip to the TimelineAsset. /// The TimelineAsset must already exist in the AssetDatabase to save the curves clip. If the TimelineAsset /// does not exist, the curves clip is still created but it is not saved. /// </remarks> /// <param name="curvesClipName"> /// The name of the AnimationClip to create. /// This method does not ensure unique names. If you want a unique clip name, you must provide one. /// See ObjectNames.GetUniqueName for information on a method that creates unique names. /// </param> public void CreateCurves(string curvesClipName) { if (m_Curves != null) return; m_Curves = TimelineCreateUtilities.CreateAnimationClipForTrack(string.IsNullOrEmpty(curvesClipName) ? kDefaultCurvesName : curvesClipName, this, true); }
/// <summary> /// Creates an AnimationClip that stores the data for an infinite track. /// </summary> /// <remarks> /// If an infiniteClip already exists, this method produces no result, even if you provide a different value /// for infiniteClipName. /// </remarks> /// <remarks> /// This method can't create an infinite clip for an AnimationTrack that contains one or more Timeline clips. /// Use AnimationTrack.inClipMode to determine whether it is possible to create an infinite clip on an AnimationTrack. /// </remarks> /// <remarks> /// When used from the editor, this method attempts to save the created infinite clip to the TimelineAsset. /// The TimelineAsset must already exist in the AssetDatabase to save the infinite clip. If the TimelineAsset /// does not exist, the infinite clip is still created but it is not saved. /// </remarks> /// <param name="infiniteClipName"> /// The name of the AnimationClip to create. /// This method does not ensure unique names. If you want a unique clip name, you must provide one. /// See ObjectNames.GetUniqueName for information on a method that creates unique names. /// </param> public void CreateInfiniteClip(string infiniteClipName) { if (inClipMode) { Debug.LogWarning("CreateInfiniteClip cannot create an infinite clip for an AnimationTrack that contains one or more Timeline Clips."); return; } if (m_InfiniteClip != null) { return; } m_InfiniteClip = TimelineCreateUtilities.CreateAnimationClipForTrack(string.IsNullOrEmpty(infiniteClipName) ? k_DefaultInfiniteClipName : infiniteClipName, this, false); }
/// <summary> /// Creates a TimelineClip, AnimationPlayableAsset and an AnimationClip. Use this clip to record in a timeline. /// </summary> /// <remarks> /// When used from the editor, this method attempts to save the created recordable clip to the TimelineAsset. /// The TimelineAsset must already exist in the AssetDatabase to save the recordable clip. If the TimelineAsset /// does not exist, the recordable clip is still created but it is not saved. /// </remarks> /// <param name="animClipName"> /// The name of the AnimationClip to create. /// This method does not ensure unique names. If you want a unique clip name, you must provide one. /// See ObjectNames.GetUniqueName for information on a method that creates unique names. /// </param> /// <returns> /// Returns a new TimelineClip with an AnimationPlayableAsset asset attached. /// </returns> public TimelineClip CreateRecordableClip(string animClipName) { var clip = TimelineCreateUtilities.CreateAnimationClipForTrack(string.IsNullOrEmpty(animClipName) ? k_DefaultRecordableClipName : animClipName, this, false); var timelineClip = CreateClip(clip); timelineClip.displayName = animClipName; timelineClip.recordable = true; timelineClip.start = 0; timelineClip.duration = 1; var apa = timelineClip.asset as AnimationPlayableAsset; if (apa != null) { apa.removeStartOffset = false; } return(timelineClip); }