Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
CanvasLayer
用于 2D 场景中的对象的独立渲染的节点。
描述
CanvasLayer 的直接或间接子节点中,派生自 CanvasItem 的节点会在该图层中进行绘制。图层是定义绘制顺序的数字索引。默认 2D 场景使用的索引为 0
,因此索引为 -1
的 CanvasLayer 会在下方绘制,而索引为 1
的 CanvasLayer 会在上方绘制。无论节点在图层中的 CanvasItem.z_index 是多少,这一顺序都成立。
CanvasLayer 可以隐藏,也可以跟随视口。因此常用于血条等 HUD(位于 1
或更高的图层上)和背景(位于 -1
或更低的图层上)。
注意:嵌入式 Window 位于 1024
图层。位于 1025
或更高图层的 CanvasItem 会显示在嵌入式窗口之上。
注意:每个 CanvasLayer 都是在一个特定的 Viewport 中绘制的,不能在多个 Viewport 之间共享,见 custom_viewport。使用多个 Viewport 时,例如分屏游戏中,你需要为每个想要绘制的 Viewport 创建一个单独的 CanvasLayer。
教程
属性
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
方法
get_canvas() const |
|
get_final_transform() const |
|
void |
hide() |
void |
show() |
信号
visibility_changed() 🔗
当该层的可见性发生变化时触发。请参阅 visible。
属性说明
分配给该 CanvasLayer 的自定义 Viewport 节点。如果为 null
,则使用默认的视口。
bool follow_viewport_enabled = false
🔗
启用时,CanvasLayer 会保持在屏幕上的某个固定位置。禁用时,CanvasLayer 会保持世界空间中的位置。
与 follow_viewport_scale 配合可以实现伪 3D 效果。
float follow_viewport_scale = 1.0
🔗
使用 follow_viewport_enabled 时缩放图层。移入到前景的图层应具有增加的缩放,而移入到背景的图层应具有减小的缩放。
画布层的索引,用于确定绘制顺序。索引值小的画布层绘制在索引值大的画布层后面。
注意:如果多个 CanvasLayer 的画布层索引相同,一个 CanvasLayer 的 CanvasItem 子节点都会绘制在另一个 CanvasLayer 的 CanvasItem 子节点之后。哪个 CanvasLayer 画在前面并不一定。
Vector2 offset = Vector2(0, 0)
🔗
图层的基本偏移量。
图层的旋转弧度。
Vector2 scale = Vector2(1, 1)
🔗
图层的缩放。
Transform2D transform = Transform2D(1, 0, 0, 1, 0, 0)
🔗
void set_transform(value: Transform2D)
Transform2D get_transform()
图层的变换。
为 false
时,该 CanvasLayer 下的所有 CanvasItem 都会被隐藏。
与 CanvasItem.visible 不同,CanvasLayer 的显示与否不会传播到其内部的层。
方法说明
返回此层使用的画布的 RID。
Transform2D get_final_transform() const 🔗
返回从 CanvasLayer 坐标系到 Viewport 坐标系的变换。
void hide() 🔗
隐藏该 CanvasLayer 下的所有 CanvasItem。相当于将 visible 设为 false
。
void show() 🔗
显示该 CanvasLayer 下的所有 CanvasItem。相当于将 visible 设为 true
。