You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Godot 4中通过代码创建SubViewport与ViewportTexture

Godot 4 中 SubViewport 与 ViewportTexture 代码创建异常问题

我尝试在Godot 4中通过代码创建SubViewport并搭配ViewportTexture使用,编写的最简示例代码如下:

# 此节点是我的场景树根节点,也是树中唯一的静态节点。
extends Node


func _ready():
    # 创建视口,添加内容并将其加入场景树:
    # 注意设置UPDATE_ALWAYS也无济于事。
    var viewport = SubViewport.new()
    viewport.render_target_update_mode = SubViewport.UPDATE_ALWAYS
    add_something_to_viewport(viewport)
    add_child(viewport)
    
    # 现在视口已有路径,我们可以创建纹理并关联:
    var viewport_texture = ViewportTexture.new()
    viewport_texture.viewport_path = viewport.get_path()

    # 最后创建使用该视口纹理的精灵:
    var sprite = Sprite2D.new()
    sprite.centered = false
    sprite.texture = viewport_texture # <== 这一行触发调试错误
    add_child(sprite)


func add_something_to_viewport(viewport: SubViewport):
    var label = Label.new()
    label.text = "Hello world"
    viewport.add_child(label)

(或查看带语法高亮的版本以提升可读性)
代码语法高亮截图

但运行后视口内容无法显示,反而出现如下调试错误:

get_height: Viewport Texture must be set to use it
get_width: Viewport Texture must be set to use it

内容的提问来源于Stack Exchange,提问作者bluenote10

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 18:13:00