Unity如何改变A的渲染顺序canvas

Unity How to change the Rendering Order of A canvas

我正在使用 unity 5.3,我正在尝试更改两个重叠的跨平台控件的渲染顺序,每个控件都位于自己的 canvas.

在以前的版本中,您可以使用

使 window 成为焦点
GUI.FocusWindow(0);

但是这不适用于新系统。 我也试过在编辑器 window 中修改顺序,但没有做任何事情。

有谁知道如何将一个控件移动到另一个控件之上?

编辑器中的命令 window 在这里应该有效。您确定要更改一个 canvas 元素内的元素顺序吗?

请注意,Canvas 游戏对象中的元素顺序是渲染所有内容的顺序 - 因此 canvas 中的最后一个对象将是最后绘制的对象,因此它将掌握一切。

这是它的工作原理:

这是在 Unity 5.3.4 中演示的,对于更老的 Unity 它可能有所不同(在 5.0 或 5.1 AFAIK 中某处枚举子项的方式发生了变化)。

经过一些研究,我找到了更改 Canvas 渲染顺序的正确方法。 Canvas中有一个属性表示Sort Order,也就是真正的渲染顺序。

请记住,您希望位于顶部的控件的顺序应大于底部控件的顺序。