Based on my knowledge of Spine-Unity, yes, all atlas textures referenced by your SkeletonDataAsset will be loaded into memory, even if you're only using a single skin. This is standard Unity behavior - Unity loads all assets that are directly referenced by components in an active scene.
Memory Impact
When you have a skeleton with multiple skins spread across different atlas pages, all those atlas page textures will be loaded when the skeleton is loaded, regardless of which skin you actually use. This can lead to unnecessary memory consumption if you have many skins but only use a few at runtime.
Performance Considerations
For your specific scenario, here are the trade-offs:
Single skeleton with many skins:
- ✅ Shared animations - easier to maintain
- ✅ Shared skeleton structure
- ❌ All atlas textures loaded into memory
- ❌ Higher memory footprint if most skins aren't used
Separate skeletons:
- ✅ Only loads textures for characters actually in the scene
- ✅ Better memory usage per character
- ❌ Animation changes need to be replicated across files
- ❌ More maintenance overhead
Solutions
If you want to use a single skeleton but optimize memory usage, consider:
On-Demand Loading: Use the on-demand loading UPM packages that allow dynamic loading of atlas textures only when needed. This integrates with systems like Unity Addressables to download textures when the corresponding skin is assigned. More details at EsotericSoftware/spine-runtimes1890
Runtime Repacking: If you're only using a fraction of available skins, you can repack the used attachments into a single texture at runtime using Skin.GetRepackedSkin(). This is demonstrated in the Mix and Match example scenes.
Manual Atlas Packing: Pack each skin's attachments into separate texture atlases manually, ensuring only atlases from active skins are loaded.
Recommendation
For your use case with several similar characters, I'd suggest starting with separate skeletons if memory is a concern and you're loading characters dynamically. However, if you need frequent animation updates across all characters or want to take advantage of on-demand loading features, the single skeleton approach with on-demand texture loading would be worth investigating.