Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

SubViewport

继承: Viewport < Node < Object

游戏世界的界面,不会创建窗口,也不会直接绘制到屏幕上。

描述

SubViewport 会将场景中的一个矩形区域分离出来,能够独立显示。例如,可以用于在 3D 世界中显示 UI。

注意:SubViewportViewport 但不是 Window,即它本身不绘制任何内容。要显示内容,SubViewport 的大小必须非零,并且应该被放在 SubViewportContainer 内,或被分配给 ViewportTexture

教程

属性

ClearMode

render_target_clear_mode

0

UpdateMode

render_target_update_mode

2

Vector2i

size

Vector2i(512, 512)

Vector2i

size_2d_override

Vector2i(0, 0)

bool

size_2d_override_stretch

false


枚举

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

该子视口用作渲染目标时的更新模式。


Vector2i size = Vector2i(512, 512)

子视口的宽度和高度。必须在两个维度上设置为大于或等于 2 像素的值。否则,不会显示任何内容。

注意:如果父节点是一个 SubViewportContainer,并且它的 SubViewportContainer.stretchtrue,则无法手动更改该视口大小。


Vector2i size_2d_override = Vector2i(0, 0)

  • void set_size_2d_override ( Vector2i value )

  • Vector2i get_size_2d_override ( )

子视口的 2D 尺寸覆盖。如果宽度或高度为 0,则禁用覆盖。


bool size_2d_override_stretch = false

  • void set_size_2d_override_stretch ( bool value )

  • bool is_size_2d_override_stretch_enabled ( )

如果为 true,则 2D 尺寸覆盖也会影响拉伸。