Godot Engine中在3D世界显示2D的UI,需要用到Viewport
,整个操作步骤还是有些麻烦,所以我用Sprite3D派生了一个Canvas3D类用于实现3D中的UI显示
![在这里插入图片描述](https://img8.php1.cn/3cdc5/12d1d/882/3cd285f042a22388.gif#pic_center)
代码如下
extends Sprite3Dclass_name Canvas3Dexport var viewport_path:NodePath = "viewport"func _ready():var viewport = get_node_or_null(viewport_path)if is_instance_valid(viewport) and viewport is Viewport:self.billboard = SpatialMaterial.BILLBOARD_ENABLEDself.texture = viewport.get_texture()viewport.usage = Viewport.USAGE_2Dviewport.transparent_bg = trueviewport.render_target_v_flip = trueelse:push_error("a valid viewport should be assigned!")