It seems painful that there is no other way to set the render order. I think that the best principle for any kind of development setup is to give the devs as much freedom and choices as possible. You can never predict what kind of need for solutions they have, and you should not enforce a philosophy or set of ‘best practices’ for anything – there are always valid arguments in defense for any type of solutions picked. Besides, it is a subjective world, and everyone has their own philosophies on how to see things.
See for example my scenario: I have a vertical layout, that contains many prefab UI object. Those prefab UI objects themselves have also a vert. layout, and contain the following setup: They have two main objects vertically laid out: below is a text object, which can stretch downwards, making the whole prefab stretch, and the parent vertical layout also. Above that text is a container, which acts as an empty spacing above the text objects in the recurring prefab setup, and also it contains two freely floating image objects, that form a profile picture, associated with the text. The other is a shadow image of the profile picture below, the other the profile image on top.
My problem is that I want a) the profile picture to be contained in the container above, which makes sense conceptually and spatially b) I want the profile picture to be on top of the text object slightly (not on top of the text, just few pixels on top of the box to have a nice look to the whole thing)
Now – if I could simply have those pics on above the text box by setting it so, all would be great. But no, this is not possible currently. The text box is below the spacing in the vertical layout hierarchy, in order to be laid out correctly, and for this reason, it also happens to be rendered on top of anything else, including freely hanging pictures contained in the spacing object.
Attached is a super-hastily drawn, nasty example sketch of what I am after. Sorry folks, it was all I had time to do.
Edit: Ok, I solved it by setting the profile pic imgs as a free-floating childs of the text box. However, this is not what I conceptually wanted to do.
