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