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。
属性说明
Node custom_viewport
分配给该 CanvasLayer 的自定义 Viewport 节点。如果为 null
,则使用默认的视口。
bool follow_viewport_enabled = false
启用时,该 CanvasLayer 会使用视口的变换,所以它会随相机移动,而不是保持在屏幕上的某个固定位置。
与 follow_viewport_scale 配合可以实现伪 3D 效果。
float follow_viewport_scale = 1.0
使用 follow_viewport_enabled 时缩放图层。移入到前景的图层应具有增加的缩放,而移入到背景的图层应具有减小的缩放。
int layer = 1
画布层的索引,用于确定绘制顺序。索引值小的画布层绘制在索引值大的画布层后面。
注意:如果多个 CanvasLayer 的画布层索引相同,一个 CanvasLayer 的 CanvasItem 子节点都会绘制在另一个 CanvasLayer 的 CanvasItem 子节点之后。哪个 CanvasLayer 画在前面并不一定。
Vector2 offset = Vector2(0, 0)
图层的基本偏移量。
float rotation = 0.0
图层的旋转弧度。
Vector2 scale = Vector2(1, 1)
图层的缩放。
Transform2D transform = Transform2D(1, 0, 0, 1, 0, 0)
void set_transform ( Transform2D value )
Transform2D get_transform ( )
图层的变换。
bool visible = true
为 false
时,该 CanvasLayer 下的所有 CanvasItem 都会被隐藏。
与 CanvasItem.visible 不同,CanvasLayer 的显示与否不会传播到其内部的层。
方法说明
RID get_canvas ( ) const
返回此层使用的画布的 RID。
Transform2D get_final_transform ( ) const
返回从 CanvasLayer 坐标系到 Viewport 坐标系的变换。
void hide ( )
隐藏该 CanvasLayer 下的所有 CanvasItem。相当于将 visible 设为 false
。
void show ( )
显示该 CanvasLayer 下的所有 CanvasItem。相当于将 visible 设为 true
。
© 版权所有 2014-present Juan Linietsky, Ariel Manzur and the Godot community (CC BY 3.0). Revision b1c660f7
.
Built with Sphinx using a theme provided by Read the Docs.