From 5d187cf80f88bddcc243500d402a289ad8f57b3f Mon Sep 17 00:00:00 2001 From: ww-rm Date: Tue, 15 Apr 2025 17:47:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DPath=E8=AF=BB=E5=8F=96?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SkeletonConverter/SkeletonConverter38.cs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/SpineViewer/Spine/Implementations/SkeletonConverter/SkeletonConverter38.cs b/SpineViewer/Spine/Implementations/SkeletonConverter/SkeletonConverter38.cs index 508493d..09c8ea3 100644 --- a/SpineViewer/Spine/Implementations/SkeletonConverter/SkeletonConverter38.cs +++ b/SpineViewer/Spine/Implementations/SkeletonConverter/SkeletonConverter38.cs @@ -632,7 +632,7 @@ namespace SpineViewer.Spine.Implementations.SkeletonConverter for (int timelineCount = reader.ReadVarInt(); timelineCount > 0; timelineCount--) { JsonArray frames = []; - var type = reader.ReadByte(); + var type = reader.ReadSByte(); var frameCount = reader.ReadVarInt(); switch (type) { @@ -640,11 +640,13 @@ namespace SpineViewer.Spine.Implementations.SkeletonConverter timeline["position"] = frames; while (frameCount-- > 0) { - frames.Add(new JsonObject() + var o = new JsonObject() { ["time"] = reader.ReadFloat(), ["position"] = reader.ReadFloat(), - }); + }; + if (frameCount > 0) ReadCurve(o); + frames.Add(o); } break; case SkeletonBinary.PATH_SPACING: @@ -1461,10 +1463,12 @@ namespace SpineViewer.Spine.Implementations.SkeletonConverter { writer.WriteByte(SkeletonBinary.PATH_POSITION); writer.WriteVarInt(frames.Count); - foreach (JsonObject o in frames) + for (int i = 0, n = frames.Count; i < n; i++) { + JsonObject o = frames[i].AsObject(); if (o.TryGetPropertyValue("time", out var time)) writer.WriteFloat((float)time); else writer.WriteFloat(0); if (o.TryGetPropertyValue("position", out var position)) writer.WriteFloat((float)position); else writer.WriteFloat(0); + if (i < n - 1) WriteCurve(o); } } else if (type == "spacing") @@ -1475,7 +1479,7 @@ namespace SpineViewer.Spine.Implementations.SkeletonConverter { JsonObject o = frames[i].AsObject(); if (o.TryGetPropertyValue("time", out var time)) writer.WriteFloat((float)time); else writer.WriteFloat(0); - if (o.TryGetPropertyValue("spacing", out var position)) writer.WriteFloat((float)position); else writer.WriteFloat(0); + if (o.TryGetPropertyValue("spacing", out var spacing)) writer.WriteFloat((float)spacing); else writer.WriteFloat(0); if (i < n - 1) WriteCurve(o); } }