SubViewport
游戏世界的界面,不会创建窗口,也不会直接绘制到屏幕上。
描述
SubViewport 会将场景中的一个矩形区域分离出来,能够独立显示。例如,可以用于在 3D 世界中显示 UI。
注意:SubViewport 是 Viewport 但不是 Window,即它本身不绘制任何内容。要显示内容,SubViewport 的大小必须非零,并且应该被放在 SubViewportContainer 内,或被分配给 ViewportTexture。
注意:默认情况下,InputEvent 不会传递给独立的 SubViewport。为了确保传播 InputEvent,可以将 SubViewport 放置在 SubViewportContainer 内。
教程
属性
|
||
|
||
|
||
|
||
|
枚举
enum ClearMode: 🔗
ClearMode CLEAR_MODE_ALWAYS = 0
绘制前始终清除渲染目标。
ClearMode CLEAR_MODE_NEVER = 1
永不清除渲染目标。
ClearMode CLEAR_MODE_ONCE = 2
在下一帧清除渲染目标,然后切换到 CLEAR_MODE_NEVER。
enum UpdateMode: 🔗
UpdateMode UPDATE_DISABLED = 0
不要更新渲染目标。
UpdateMode UPDATE_ONCE = 1
更新渲染目标一次,然后切换到 UPDATE_DISABLED。
UpdateMode UPDATE_WHEN_VISIBLE = 2
仅在渲染目标可见时更新渲染目标。这是默认值。
UpdateMode UPDATE_WHEN_PARENT_VISIBLE = 3
仅在其父级可见时更新渲染目标。
UpdateMode UPDATE_ALWAYS = 4
始终更新渲染目标。
属性说明
ClearMode render_target_clear_mode = 0 🔗
该子视口用作渲染目标时的清除模式。
注意:此属性适用于 2D 用途。
UpdateMode render_target_update_mode = 2 🔗
void set_update_mode(value: UpdateMode)
UpdateMode get_update_mode()
该子视口用作渲染目标时的更新模式。
Vector2i size = Vector2i(512, 512) 🔗
子视口的宽度和高度。必须在两个维度上设置为大于或等于 2 像素的值。否则,不会显示任何内容。
注意:如果父节点是一个 SubViewportContainer,并且它的 SubViewportContainer.stretch 为 true,则无法手动更改该视口大小。
Vector2i size_2d_override = Vector2i(0, 0) 🔗
子视口的 2D 尺寸覆盖。如果宽度或高度为 0,则禁用覆盖。
bool size_2d_override_stretch = false 🔗
如果为 true,则 2D 尺寸覆盖也会影响拉伸。