@Reffined Please note that having a skeleton separated into 40 or more submeshes via the render separation feature is not something we would recommend doing. Why do you need such a high number of separate parts, what are your trying to achieve?
Reffined the issue arises when i need to move the renderers in Z direction at runtime but because different animations have different drawing orders for different parts of the skeleton the runtime on the side of unity moves meshes and not the renderer
The render separation feature separates by slicing your skeleton at any of the found separator slots and assigns the parts meshes at renderers in ascending order. By changing draw order you can arbitrarily re-group any of your attachments to different parts each frame (like regrouping parts AB
CD
to AC
BD
), therefore it's unfortunately not possible to assign attachments at the same renderer as in a preceding frame.
Reffined how do i change the position of renderers at runtime and without having to fight with spine changing the mesh it self between animations?
You could theoretically register a method at SkeletonAnimation.GenerateMeshOverride
and set SkeletonAnimation.disableRenderingOnOverride = false
, and then iterate over SkeletonRendererInstruction.submeshInstructions
and create a map (or List) of your initial submeshInstruction.startSlot
or .endSlot
at each part once to later be able to find the index of your re-arranged group again. You would initialize this list once with each startSlot
index of each SubmeshInstruction, and then each frame use the initial list to find the original index of your current part's submeshInstruction again.
The above is however not something that we would recommend as the first solution, as there might be better solutions available depending on what you are trying to achieve.