godot游戏引擎自学入门笔记--可视化脚本续,官方文档翻译(十一)

时间:2024-04-04 19:59:26
节点与术语

Before continuing, it must be noted that the Node terminology needs to be used with care. When referring to Visual Script Nodes (or generally Nodes) this text will refer to the little boxes you connect with lines, which are part of a graph. When referring to Scene Nodes, it is implied that the elements that make up a Scene are being referred, which are part of a tree. Their naming is similar but their function is different. When referring to Node here, it will be implied that a Visual Script Node is referred to unless indicated otherwise.

在继续之前,必须注意 节点术语需要谨慎使用。 当引用可视化脚本节点 (或通常为 节点 )时,此文本是指与线连接的小方框,它是图的一部分。 当引用场景节点时,它暗指构成场景的元素,它是树的一部分。 他们的命名类似,但他们的功能是不同的。 在此处谈到 节点 时,除非另有说明,否则将暗指 可视化脚本节点
godot游戏引擎自学入门笔记--可视化脚本续,官方文档翻译(十一)

节点属性

Like in most visual scripting implementations, each node has editable properties. In Godot, though, we try to avoid bloating the nodes with editable controls for the sake of readability.
Nodes still display the required information as text, but editing is done via the Inspector. To edit them, select any node and edit its properties in the Inspector.

与大多数可视化脚本实现一样,每个节点都具有可编辑的属性。 但是,在Godot中,为了便于阅读,我们尽量避免使用可编辑的控件来复杂化节点。
节点仍然以文本形式显示所需信息,但编辑是通过 属性面板 完成的。 要编辑它们,请选择任何节点并在 属性面板 中编辑其属性。

端口与连接

Godot的可视化编程,是通过每个函数内的 节点 和 端口连接 来完成的
端口是出现在节点左侧和右侧的端点,可用于制作 连接 :有两种类型的 端口 : 顺序 和 数据
godot游戏引擎自学入门笔记--可视化脚本续,官方文档翻译(十一)

Sequence Ports indicate the order in which operations are executed. Typically when a Node is done processing, it will go to the next node from one of the ports at the right. If nothing is connected, the function may end, or another output Sequence Port might be tried (this depends on the node). Thanks to this, you can follow the logic flow within a function by following the white lines. Not every Node has Sequence Ports. In fact, most do not.

Data Ports ports contain typed values. Types can be any regular Godot types, such as a boolean, an integer, a string, a Vector3, an array, any Object or Scene Node, etc. A Data Port on the right side of a node is considered an output, while, a port on the left side is an input. Connecting them allows information to flow to the next node.

Not all Data Port types are compatible and will allow connections, though. Pay special attention to colors and icons, as each type has a different representation

顺序端口 表示执行操作的顺序。 通常当 节点 完成处理时,它将从右边的一个端口进入下一个节点。 如果没有连接,则该函数可能结束,或者可能尝试另一个输出 顺序端口*(这取决于节点)。 多亏了这一点,您可以通过遵循白线来跟踪函数内的逻辑流程。 并非每个 *节点 都有 顺序端口 。 事实上,大多数没有。

数据端口 包含具有类型的值。 类型可以是任何常规的Godot类型,例如布尔值,整数,字符串,Vector3,数组,任何对象或场景节点等。节点右侧的 数据端口 被视为输出, 而左侧的端口是输入。 连接它们,从而使得信息流到下一个节点。

但并非所有的 数据端口 类型都兼容并且允许连接。 要特别注意颜色和图标,因为每种类型都有不同的表示形式:
godot游戏引擎自学入门笔记--可视化脚本续,官方文档翻译(十一)
连接是一个相对简单的过程。 将 输出端口 拖向 输入端口
godot游戏引擎自学入门笔记--可视化脚本续,官方文档翻译(十一)
断开连接需要一点练习。 断开 数据端口 是通过拖离 输入 来实现的,而对于 顺序端口,则通过拖离 输出 来实现
godot游戏引擎自学入门笔记--可视化脚本续,官方文档翻译(十一)

This may seem strange at first, but it happens because Data Ports are 1:N (A single output port can connect to many inputs), while Sequence Ports are N:1 (Many sequence outputs can be connected to a single input).
Connecting to empty space (drag to connect but unpress over empty space) is also context sensitive, it will supply a list of most common operations. For sequences, it will be conditional nodes

这在开始时可能看起来很奇怪,但它之所以这样是因为 数据端口 是1:N(单个输出端口可以连接到许多输入),而 顺序端口 是 N:1(许多顺序输出可以连接到单个输入)。

连接到空白区域(拖动以连接但是在空白区域上按下)也是上下文敏感的,它将提供最常见操作的列表。 对顺序,它将是条件节点:
godot游戏引擎自学入门笔记--可视化脚本续,官方文档翻译(十一)
而对于数据,将打开上下文设置/获取/调用菜单
godot游戏引擎自学入门笔记--可视化脚本续,官方文档翻译(十一)

添加节点

最后! 我们到了有趣的部分! 但是,在更详细地解释每种类型节点的作用之前,让我们简单地看一下节点最常添加和处理的方式。
最常见的任务之一是访问场景树节点(同样,不要误认为是 可视脚本节点 )。 从场景树拖动并放入画布,将要求你在此节点上调用方法 (有时称为 成员函数 )。
godot游戏引擎自学入门笔记--可视化脚本续,官方文档翻译(十一)
虽然在大多数情况下需要访问属性(下面有更多内容),但有时 调用方法 也很有用。 方法对对象执行特定操作。 在上述情况下,鼠标指针可以扭曲到控件的本地坐标中的位置。 另一个常见用例是将节点排队以进行删除,这是使用 queue_free 方法完成的
godot游戏引擎自学入门笔记--可视化脚本续,官方文档翻译(十一)
必须注意,这只适用于正在编辑的场景在其中一个节点中包含 可视化脚本 的情况! 否则,将显示警告

访问场景节点属性是在可视化脚本中编辑 场景节点 的最常用方法,从 场景树 中选择 场景节点 ,转到属性面板,找到要编辑的属性的名称(提示 不是值!)并将其拖到画布上
godot游戏引擎自学入门笔记--可视化脚本续,官方文档翻译(十一)
通过写入可视化脚本中的 数据端口 来改变此值。
如果需要读取此值,请再次拖动节点,但按住 Control ,
godot游戏引擎自学入门笔记--可视化脚本续,官方文档翻译(十一)
在这种情况下,可以从 数据端口 读取值。

添加更多节点

既然已经涵盖了基础知识,那么让我们讨论一下可用于画布的大量实用程序节点! 在成员面板下方,存在所有可用节点类型的列表
godot游戏引擎自学入门笔记--可视化脚本续,官方文档翻译(十一)
其中任何一个都可以拖到画布。 与前面的节点不同,这些节点在没有任何“上下文”信息的情况下添加,因此必须手动完成。
godot游戏引擎自学入门笔记--可视化脚本续,官方文档翻译(十一)
比如第一个常量节点是提供值的节点,这些值虽然不随时间变化,但可用作参考值。 大多数情况下它们是整数或浮点数
第二个是全局常量节点,它包含Godot中全局类型的一长串常量,在那里你可以找到一些有用的常量来引用键名,操纵杆或鼠标按钮等
第三个是数学常量,它提供典型的数学常数,如PI,E等
godot游戏引擎自学入门笔记--可视化脚本续,官方文档翻译(十一)

数据节点

数据节点处理各种信息访问。 Godot中的任何信息都可以通过这些节点访问,因此它们是使用与多样化最重要的的节点。
godot游戏引擎自学入门笔记--可视化脚本续,官方文档翻译(十一)

流控制节点

允许执行采用不同的分支,通常取决于给定的条件
godot游戏引擎自学入门笔记--可视化脚本续,官方文档翻译(十一)

运算符节点

godot游戏引擎自学入门笔记--可视化脚本续,官方文档翻译(十一)

表达式节点

在运算符中, Expression 节点是最强大的。 如果使用得当,它可以让你获得数学或逻辑繁重的视觉可视化脚本。 在其上键入任何表达式,它将实时执行。
基于自定义输入执行数学和逻辑表达式(例如:“a*5 + b”,其中a和b是自定义输入):
godot游戏引擎自学入门笔记--可视化脚本续,官方文档翻译(十一)
访问局部变量或属性
godot游戏引擎自学入门笔记--可视化脚本续,官方文档翻译(十一)
使用GDScript可用的大多数现有内置函数,例如 sin(),cos(),print(),以及构造函数,例如Vector3(x,y,z),Rect2(…) 等
godot游戏引擎自学入门笔记--可视化脚本续,官方文档翻译(十一)
调用API函数
godot游戏引擎自学入门笔记--可视化脚本续,官方文档翻译(十一)
使用顺序模式,在遵守处理顺序的情况下更有意义
godot游戏引擎自学入门笔记--可视化脚本续,官方文档翻译(十一)