diff --git a/Spine/Spine.csproj b/Spine/Spine.csproj index 76993e6..d7ec78a 100644 --- a/Spine/Spine.csproj +++ b/Spine/Spine.csproj @@ -7,7 +7,7 @@ net8.0-windows $(SolutionDir)out false - 0.16.0 + 0.16.1 diff --git a/Spine/SpineObject.cs b/Spine/SpineObject.cs index 7cfda72..1baff8e 100644 --- a/Spine/SpineObject.cs +++ b/Spine/SpineObject.cs @@ -181,6 +181,7 @@ namespace Spine _skinLoadStatus = other._skinLoadStatus.ToDictionary(); ReloadSkins(); + // XXX(#105): 部分 3.4 模型此处可能导致预期外的插槽附件残留 // 拷贝插槽属性值 for (int i = 0; i < other._skeleton.Slots.Length; i++) { diff --git a/SpineViewer/Extensions/SpineObjectExtension.cs b/SpineViewer/Extensions/SpineObjectExtension.cs index 0ee0602..9d8d703 100644 --- a/SpineViewer/Extensions/SpineObjectExtension.cs +++ b/SpineViewer/Extensions/SpineObjectExtension.cs @@ -27,6 +27,12 @@ namespace SpineViewer.Extensions t.TrackTime = tr.TrackTime; } + // XXX(#105): 部分 3.4.02 版本模型在设置动画后出现附件残留, 因此强制进行一次 Setup + if (spineObject.Version == SpineVersion.V34) + { + spineObject.Skeleton.SetSlotsToSetupPose(); + } + spineObject.Update(0); return spineObject; } diff --git a/SpineViewer/Models/SpineObjectModel.cs b/SpineViewer/Models/SpineObjectModel.cs index 3811ff5..1612b96 100644 --- a/SpineViewer/Models/SpineObjectModel.cs +++ b/SpineViewer/Models/SpineObjectModel.cs @@ -531,6 +531,12 @@ namespace SpineViewer.Models trackIndex++; } + // XXX(#105): 部分 3.4.02 版本模型在设置动画后出现附件残留, 因此强制进行一次 Setup + if (_spineObject.Version == SpineVersion.V34) + { + _spineObject.Skeleton.SetSlotsToSetupPose(); + } + SetProperty(_spineObject.DebugTexture, value.DebugTexture, v => _spineObject.DebugTexture = v, nameof(DebugTexture)); SetProperty(_spineObject.DebugBounds, value.DebugBounds, v => _spineObject.DebugBounds = v, nameof(DebugBounds)); SetProperty(_spineObject.DebugBones, value.DebugBones, v => _spineObject.DebugBones = v, nameof(DebugBones)); diff --git a/SpineViewer/SpineViewer.csproj b/SpineViewer/SpineViewer.csproj index f0c6462..4e82855 100644 --- a/SpineViewer/SpineViewer.csproj +++ b/SpineViewer/SpineViewer.csproj @@ -7,7 +7,7 @@ net8.0-windows $(SolutionDir)out false - 0.16.0 + 0.16.1 WinExe true