画布层
现在我们已经开始深入研究渲染了,值得一提的是Godot提供的另一个很酷的工具,可以使我们的生活更轻松:CanvasLayer。
在制作2D游戏时,绘制元素的顺序非常重要,例如,它决定了角色是站在树的下方还是上方。
对于这个问题,一个简单的解决方案是使用Z属性来排序节点的绘制顺序。这在一开始工作得很好,但是当我们的场景变得越来越复杂时,它就变得越来越难确保子场景的节点没有错误的Z值。
最重要的是,在处理一个3D游戏时,当我们想有一个GUI时,这一招根本行不通。
这就是CanvasLayer的作用。顾名思义,它把所有的子节点封装成一个渲染层。然后,Godot对我们的场景层进行逐层渲染,从CanvasLayer的Layer属性的较低值开始。
NOTE
默认的CanvasLayer
每一个不是CanvasLayer的子节点都会被Godot认为是默认图层的一部分,默认图层的值为0,所以在添加CanvasLayer的时候,如果是在背景层,记得将其Layer属性设置为负值,如果是前景层,则设置为正值。
CanvasLayer一个很常见的用例是与2D平台一起创建固定背景、视差滚动背景、中间背景(玩家与世界交互的地方)和GUI的前景之间的分离。事实上,Godot甚至提供了一个名为ParallaxBackground的特殊图层节点来简化视差滚动的实现。