internal static void CreateCurvesIfRequired(TimelineClip clip, TrackAsset parentTrack = null)
 {
     if (clip.curves == null)
     {
         if (parentTrack == null)
         {
             parentTrack = clip.parentTrack;
         }
         clip.AllocateAnimatedParameterCurves();
         clip.curves.set_name(AnimationTrackRecorder.GetUniqueRecordedClipName(clip.parentTrack, AnimatedParameterExtensions.kDefaultClipName));
         string assetPath = AssetDatabase.GetAssetPath(clip.parentTrack);
         if (!string.IsNullOrEmpty(assetPath))
         {
             TimelineHelpers.SaveAnimClipIntoObject(clip.curves, clip.parentTrack);
             EditorUtility.SetDirty(clip.parentTrack);
             AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(clip.parentTrack));
             AssetDatabase.Refresh();
         }
     }
 }