修复3.4的附件残留问题

This commit is contained in:
ww-rm
2025-09-30 14:47:00 +08:00
parent c4a6fd9d86
commit dd504d32ca
3 changed files with 13 additions and 0 deletions

View File

@@ -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++)
{

View File

@@ -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;
}

View File

@@ -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));