基础概念
本节主要介绍脚本有哪些构成,以及脚本是如何运行的。
构建单元
构建单元 在 Virtools 术语中称作 Building Block,社区简称 BB。本手册其余部分均会使用简称。
BB 是脚本中的最小单位,它代表了一个 功能。例如一个 BB 可以代表“当玩家球与某个物体发生碰撞时”,或者另一个 BB 可以代表“播放一个音效”。
提示
BB 可以类比成其它编程语言中“函数”或者“类”的概念,但又不完全相同。
一个完整的脚本通常是由多个 BB 连接而成的。BB 的内部负责实现具体的代码功能,而我们编写脚本时只需要使用即可。
举例说明,当我们需要为一个物体设置坐标时,可以使用 Set Position
BB。但具体 如何设置坐标、如何与游戏引擎交互 等,则不需要我们关心。我们只需要添加这个 BB,然后将其正确连接,最后提供具体坐标即可。
连接线
连接线分为两种:实线和虚线。其中实线负责逻辑流,表示逻辑顺序;虚线负责数据流,表示数据传递。
对于一个 BB 来说,控制逻辑的出入口一般位于左右两侧,控制数据输入输出的口一般位于上下两侧。所以读一个脚本的正确方式是,沿着实线阅读,先了解脚本依次使用了哪些 BB,然后详细分析时再观察具体的某个 BB 使用了哪里来的数据。
逻辑连接线上的数字表示它的延迟,单位是帧(Frame),一般情况下延迟默认为 0。当连接一根线会导致脚本形成回环时,延迟会自动变为 1,这是为了防止没有延迟的脚本无限运行,防止游戏卡死,因此在一个回环中至少需要 1 帧的延迟。
双击一根逻辑连接线可以修改它的延迟。如果你需要延时固定的时长,建议不要直接修改连接线的延迟,因为游戏时的帧率是不确定的,因此延时也是不确定的。需要延时可以使用 Delayer
BB。