Yes, it seems to be the case. I’m not sure if there is any way to override this but I know a solution that is not pretty and probably not practical, but works.
- Create a new layer name it for example “animation”.
- Create a copy of the object you want to sync and put it on the “animation” layer
- You can hide the copy on the “animation” layer to be not visible.
- To sync the animation of all instances, compare their current animation frame with the current image of the copy on the “animation” layer and if it’s different, set the animation frame of the object to be the same as the animation frame of the copy on the “animation” layer.
The event should look something like this:
The animation frame of Object is NOT = objectCopy.Sprite() THEN Change the animation frame of Object to objectCopy.Sprite()
Where “Object” and “objectCopy” is the name of the objects.
This way you can force all instances to keep the animations in sync by copying the frames from the object copy.
The reason we need to put the copy on it own separate layer is that if you move the camera and you leave the copy behind, it is going to stop playing the animation so in order to keep it on the screen constantly, we put it on it own layer.
This is a really dirty solution and if you have lots of sprites, it may even going to cause performance problems, but at the moment, this is the only solution I have.
Would like to know if there is any better solution.