/// <summary> /// Clone a SpriteAnimationClip. /// </summary> /// <param name="source">Clip source.</param> /// <param name="init">Is need init the clone instance.</param> /// <returns>The clone instance.</returns> public static SpriteAnimationClip Duplicate(SpriteAnimationClip source, bool init) { SpriteAnimationClip ret = ScriptableObject.CreateInstance <SpriteAnimationClip>(); ret.name = source.name; ret.dataFormatVersion = source.dataFormatVersion; ret.frameRate = source.frameRate; ret.wrapMode = source.wrapMode; ret.events = source.events; ret.root = SpriteAnimationComponent.Duplicate(source.root); ret.root.clip = ret; ret.subComponents = new SpriteAnimationComponent[source.subComponents.Length]; foreach (SpriteAnimationComponent comp in source.subComponents) { SpriteAnimationComponent tmpComp = SpriteAnimationComponent.Duplicate(comp); tmpComp.clip = ret; ret.subComponents[tmpComp.index] = tmpComp; } if (init) { ret.Init(false); } return(ret); }
/// <summary> /// Recalculate all curves in SpriteAnimationCLip. Usually use in editor script when you modify keyframe data. /// </summary> public static void RecalcCurve(SpriteAnimationClip clip) { clip.Init( true ); }
/// <summary> /// Recalculate all curves in SpriteAnimationCLip. Usually use in editor script when you modify keyframe data. /// </summary> public static void RecalcCurve(SpriteAnimationClip clip) { clip.Init(); clip.CalcCurve(); }