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