Closed
Description
The Dispose()
method is incorrectly implemented. On re-entry, this method will crash Unity runtime due to disallocating a native array twice.
The fix is simply:
public void Dispose()
{
if (m_fastSpringBoneBuffer != null)
{
m_fastSpringBoneService.BufferCombiner.Unregister(m_fastSpringBoneBuffer);
m_fastSpringBoneBuffer.Dispose();
m_fastSpringBoneBuffer = null; // Add this line
}
}
Same situation in Vrm10FastSpringboneRuntimeStandalone
: