Found the bug. It was silly and easy to fix. Should be included in the unitypackage by Monday.
But I notice that you're using old code. I think this is spine-unity 3.2?
In this case, you're free to edit it yourself.
Open SkeletonRenderer.cs.
Look for this code:
bool forceSeparate = (separatorSlotCount > 0 && separatorSlots.Contains(slot));
if ((vertexCount > 0 && lastMaterial.GetInstanceID() != material.GetInstanceID()) || forceSeparate) {
and replace it with this:
bool forceSeparate = (separatorSlotCount > 0 && separatorSlots.Contains(slot));
if (vertexCount > 0 && (lastMaterial.GetInstanceID() != material.GetInstanceID() || forceSeparate)) {
Only the parentheses/grouping differs.
That should handle the basic cases.
I've done some initial testing including with weird slot setups (everything invisible, etc). Seems to handle those too.