• Hey! Guest! The 36th GMC Jam will take place between February 27th, 12:00 UTC - March 2nd, 12:00 UTC. Why not join in! Click here to find out more!

Question - Code How do I change what layer an instance is on in GML?


When I create an instance using "object = instance_create_layer()" how do I later change what layer that instance is on?


Change the instance's layer variable directly, or use layer_add_instance()

object.layer = layer_get_id("LayerName");
// or
layer_add_instance(layer_get_id("LayerName"), object);
Read the manual, dude ;)


That is good.

So now I can create a script called instance_create(x,y,object) which creates a instance_create_layer(x,y,default_layer,object) then in the Create event of the object I set layer=layer.

This means my code is much tidier and if happen to change layer name or what layer object should be on I don't need to change a million bits of code. :)


YoYo Games Staff
YYG Staff
you could also just use instance_create_depth() as an object no longer has a depth variable so you cannot set the depth of the object and every instance inherits it as that was silly - you now create the instance at a set depth (a layer will be auto created for you at that depth)....

Personally I would just swap to instance_create_depth() if you are not using layers directly.



Could the same be done with the layers in the object editor and room editor for specific instances? Let's say I am making a isometric RPG, how would I go about isometric depth? Now that was just an example, for references to asking for help on assigning instances to individual instance layers. ;)