首页 文章

在画布中更改Gameobject z位置以使其前进

提问于
浏览
0

我有一个带有正交相机的2D场景,它有一个带有多个GameObjects的Canvas . 这些对象实际上是用户单击按钮时显示的对话框 .

所有GameObject都是预先实例化的,我只是使用 SetActive() 来显示或隐藏它们 . 现在,如果用户点击按钮,他们确实按预期看到GameObject,但是如果他们点击另一个按钮而没有关闭上一个窗口,则新的 GameObject(UI Window) 显示在已打开的窗口下方 .

我发现改变的唯一真正方法是在Canvas中切换GameObjects层次结构顺序 . 但是,无论如何,我都需要以编程方式进行更改 .

我尝试更改z值并添加 spriterenders 与图层,但我在Unity编辑器中看到相同的顺序 . 它只会在我拖动GameObject并更改Canvas Hierarchy中的位置时更改 .

我怎样才能通过脚本实现这一目标?

1 回答

  • 2

    你的问题是当你在Canvas中渲染一些东西时,GameObject在层次结构中的位置很重要 . 实际上,canvas使用层次结构中的顺序进行z排序 .

    但是您可以在脚本中影响层次结构中GameObject的顺序,如果要更改层次结构中GameObject的位置,请参阅Transform.SetSiblingIndexTransform.SetAsFirstSiblingTransform.SetAsLastSibling

相关问题