From ed7b0a241599b4ab121526132a0e40bf3bd5bd0a Mon Sep 17 00:00:00 2001 From: VaDiM Date: Wed, 27 Sep 2023 23:14:15 +0300 Subject: [PATCH] Unity 2022.2+ AnimationClip fix --- AssetStudio/Classes/AnimationClip.cs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/AssetStudio/Classes/AnimationClip.cs b/AssetStudio/Classes/AnimationClip.cs index 5769838..cf6220f 100644 --- a/AssetStudio/Classes/AnimationClip.cs +++ b/AssetStudio/Classes/AnimationClip.cs @@ -15,7 +15,6 @@ namespace AssetStudio public T inWeight; public T outWeight; - public Keyframe(ObjectReader reader, Func readerFunc) { time = reader.ReadSingle(); @@ -294,15 +293,20 @@ namespace AssetStudio public string path; public ClassIDType classID; public PPtr script; - + public int flags; public FloatCurve(ObjectReader reader) { + var version = reader.version; curve = new AnimationCurve(reader, reader.ReadSingle); attribute = reader.ReadAlignedString(); path = reader.ReadAlignedString(); classID = (ClassIDType)reader.ReadInt32(); script = new PPtr(reader); + if (version[0] > 2022 || (version[0] == 2022 && version[1] >= 2)) //2022.2 and up + { + flags = reader.ReadInt32(); + } } } @@ -311,7 +315,6 @@ namespace AssetStudio public float time; public PPtr value; - public PPtrKeyframe(ObjectReader reader) { time = reader.ReadSingle(); @@ -326,10 +329,11 @@ namespace AssetStudio public string path; public int classID; public PPtr script; - + public int flags; public PPtrCurve(ObjectReader reader) { + var version = reader.version; int numCurves = reader.ReadInt32(); curve = new PPtrKeyframe[numCurves]; for (int i = 0; i < numCurves; i++) @@ -341,6 +345,10 @@ namespace AssetStudio path = reader.ReadAlignedString(); classID = reader.ReadInt32(); script = new PPtr(reader); + if (version[0] > 2022 || (version[0] == 2022 && version[1] >= 2)) //2022.2 and up + { + flags = reader.ReadInt32(); + } } } @@ -940,7 +948,6 @@ namespace AssetStudio public AnimationClipBindingConstant m_ClipBindingConstant; public AnimationEvent[] m_Events; - public AnimationClip(ObjectReader reader) : base(reader) { if (version[0] >= 5)//5.0 and up