无法移动画布或更改任何变换值

时间:2016-05-07 22:18:02

标签: user-interface unity3d unity5

我正在使用Unity 5,我开始制作一个菜单场景。当我制作画布时,Rect Transform组件下的所有值都被锁定,并显示“由Canvas驱动的某些值”。我唯一可以改变的是在编辑器中使用Gizmo时的z位置。我无法重置位置或任何东西。 为什么会这样? Screenshot

3 个答案:

答案 0 :(得分:10)

这意味着画布的画布组件将其render mode设置为Screen space - overlay。这迫使它成为屏幕的大小。将其更改为World Space,它将允许您调整大小并移动它。

答案 1 :(得分:3)

更改“渲染”模式不是理想的解决方案。重叠模式都不是导致这种情况发生的原因。 World Space只是一种渲染模式,它改变了整个UI的行为方式,这意味着将进行完全不同的设置,并进行大量工作才能使子UI对象独立移动。

这是Unity网站上的World Space的描述:

  

在此渲染模式下,Canvas的行为将与   现场。画布的大小可以使用其Rect手动设置   变换,UI元素将在其他元素的前面或后面呈现   基于3D放置的场景中的对象。这对UI很有用   一定会成为世界的一部分。这也称为   “糖尿病的界面”。

Rect变换通常被锁定,因为它是另一个控制其变换的画布对象的子级。解决此问题的方法是通过向其添加“布局元素”组件来覆盖它。从那里,您可以对其进行配置,使其以您喜欢的方式工作,并且可以进行独立于父UI对象的转换。

有关详细信息,请参见以下Unity支持页面:https://support.unity3d.com/hc/en-us/articles/115000179163-How-to-overwrite-Width-and-Height-values-that-are-driven-by-a-Layout-Group-in-runtime-

答案 2 :(得分:1)

画布取决于窗口面板中的游戏选项卡。 通过使用关闭标签或调整大小面板或文档游戏面板来调整面板。 这将帮助您制作默认的800 X 600画布。