1. 添加GUI 1.1 新建场景,添加 CanvasLayer ,改名为HUD。 CanvasLayer 是绘图层,用于绘制各种图层。 layer 属性决定了图层的层级,从低向高绘制,-1 或更低通常用于绘制背景,1 或者更高通常用于绘制 HUD。 Transform2D() 用于计算图层的缩放、扭曲、翻转。参数为 (X.x, X.y, Y.x, Y.y, O.x, O.y) ...
2.1 Canvas Transform 上一节提到过,每一个 canvasItem 都有一个自己的 Canvas Layer(不是 CanvasLayer 节点)。每一个 Canvas Layer 都有自己的 transform。 默认所有节点都被渲染在 Layer 0 上。 2.2 全局 canvas transform 前面说过,Viewport 也有一个 canvas transform,这个是全局 canvas transform,这个 transfor...
不过这里实际上可以用CanvasLayer来简单实现。 在场景中添加CanvasLayer节点,然后把之前的背景放到它下面,然后把它的Layer属性调整成一个负值(保证它最小),这样它就不会覆盖其它节点: 其实现在启动游戏,你就会发现背景已经保持不动了。 那啥是CanvasLayer。CanvasLayer是容纳CanvasItem的容器,一个视口(Viewport)中的场景...
上一节提到过,每一个 canvasItem 都有一个自己的 Canvas Layer(不是 CanvasLayer 节点)。每一个 Canvas Layer 都有自己的 transform。 默认所有节点都被渲染在 Layer 0 上。 2.2 全局 canvas transform 前面说过,Viewport 也有一个 canvas transform,这个是全局 canvas transform,这个 transform 会影响其他的 canva...
如果需要显示拾取提示时这个UI场景尚未实例化,我们就实例化并加入UI的CanvasLayer,否则我们就令其可见。稍后我们会通过设置visible属性来控制拾取提示的显示和隐藏。当然无论如何,我们都要设置拾取提示的item属性为我们可以拾取的道具中所引用的道具元数据,以令其显示对应道具的信息。
说做就做,在主场景中添加一个 CanvasLayer 子节点,改名为 UI ,然后往它里面添加其他子节点:首先添加一个 HBoxContainer 控件节点,如同其名,这是一个内容水平排列的盒子容器;在该节点内部添加一个显示金币图片的控件 TextureRect 节点,以及一个计数文本标签节点:Label 控件。控件节点的属性设置如下:...
CanvasLayer在Godot中主要用于UI元素的绘制。 它有以下几个主要作用: 提供一个独立的绘制层用于UI元素 CanvasLayer是一个独立的Control节点,它 allows你在一个独立的绘制层上绘制UI控件,不会与场景中其他Spatial节点混合在一起,这样可以保证UI元素总是绘制在场景内容的上层。
说做就做,在主场景中添加一个 CanvasLayer 子节点,改名为 UI ,然后往它里面添加其他子节点:首先添加一个 HBoxContainer 控件节点,如同其名,这是一个内容水平排列的盒子容器;在该节点内部添加一个显示金币图片的控件 TextureRect 节点,以及一个计数文本标签节点: Label 控件。控件节点的属性设置如下:...
蓝色CanvasLayer和绿色CanvasLayer都是全屏UI 平时都是隐藏状态,等用户点击按钮时触发全局暂停,并显示。 但是蓝色UI层的按钮事件正常,但是绿色UI层的事件无法触发 在检查了所有container都没有捕获鼠标事件的情况下,结果pressed事件依然不能被触发 最后误打误撞修改了两个CanvasLayer的layer属性为不同值,问题就解决了编辑...
onready var ui = get_node("/root/MainScene/CanvasLayer/UI") 接着来到collect_coin函数,添加一行代码设置UI text。 ui.set_score_text(score) 按下play,现在当我们收集一个硬币时,score text将更新。我们还要进行一些设置,以便游戏开始时显示设置的文本。在UI脚本里... ...