[System.Serializable] public class KeyframeData { public SerializableTransform Root; public KeyframeData() { } public KeyframeData(ObjectContainer container) { this.Root = new SerializableTransform(container.transform); } public virtual KeyframeData Clone() { var keyframe = new KeyframeData(); keyframe.Root = new SerializableTransform(this.Root); return keyframe; } public virtual KeyframeData Lerp(KeyframeData target, float amount) { var copy = this.Clone(); copy.Root = copy.Root.LerpWith(target.Root, amount); return copy; } }