Cave:入门指南
逻辑砖基础
Lesson 14 of 19 • 10 XP
Keep your place in this quest
Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.
Logic Bricks 是 Cave 的可视化脚本系统。
它们通过连接节点而不是直接编写 Python 代码来让你创建游戏玩法行为。

本课程介绍了 Logic Bricks 的定义、位置、运行方式以及何时应该使用它们。稍后的深入课程会带你学习整个系统,但本概述将帮助你理解 Logic Bricks 在 Cave 工作流程中的位置。
视频教程
我们有一个完整的 视频教程 来教你如何开始使用 Logic Bricks。我们建议你观看它。
在 YouTube 上观看
这将是深入学习它们的更好方法。
但是如果你想继续这里,我们就做一个快速介绍:
什么是 Logic Bricks?
Logic Bricks 是可视化的逻辑图,允许你快速直观地创建逻辑,而无需编写实际代码。

如果你熟悉其他可视化脚本方法,比如 Unreal Engine 的蓝图,每个砖块本质上就是一个节点。但根据 Cave 的命名约定,它们被称为砖块。砖块可以代表多种逻辑:
- 事件。
- 动作。
- 值。
- 数学。
- 字符串。
- 引擎实用工具。
- 实体操作。
- 组件操作。
- 资源引用。
- 函数。
你可以通过连接砖块来构建行为。
如果你是编程新手,Logic Bricks 可能是开始创建交互的友好方式,因为你可以将行为可视化为图。
例如,一个简单的图可以意味着:
当玩家触碰此触发器时:
打开一扇门。
播放一个声音。
禁用触发器。
这种交互方式通常比长脚本更容易理解,特别是当你还在学习时。
这不是完整的 Logic Bricks 课程
本课程只是概览。
Logic Bricks 的内容远不止于此:
- 函数。
- 流程控制。
- 值插槽。
- 运行时调试。
- 注释。
- 资源处理砖块。
- 可重用图。
- 状态机集成。
这些主题应该在后面的课程中得到重点讲解。
现在的目标是理解 Logic Bricks 的作用:它们是一种可视化方式来构建行为、连接系统、原型交互,并使游戏对象对事件做出响应。
如果你想要完整的 Logic Bricks 教程,请观看这个。
Logic Bricks 资产
一个 Logic Bricks 图是一个资产。你可以在资源浏览器中创建它,就像创建场景、Python 脚本、时间线、材质或实体模板一样。
因为它是一个资产,所以它可以是:
- 命名的。
- 组织在文件夹中。
- 在资源浏览器中选择的。
- 在属性标签中编辑的。
- 多个实体重用的。
- 随项目保存的。
这一点很重要:图本身是项目内容。
例如,你可以创建一个 Door Logic 资产并在多个门上使用它。稍后,如果你改进了图,那些门可以根据你设置的可重用配置共享更新的行为。
Logic Bricks 组件
要在游戏中运行一个 Logic Bricks 资产,将其附加到带有 Logic Bricks Component 的实体上。

该组件选择它应该使用哪个 Logic Bricks 资产。在运行时,该组件为其拥有的实体创建图的运行时实例。
这意味着:
- 资产定义了共享行为。
- 每个实体都有自己的运行实例。
- 同一图可以被多个实体重用。
这类似于可重用的 Python 脚本可以在多个实体上分别运行。
可重用的 Logic Bricks
Logic Bricks 是可重用的,而这正是它们的最大优势之一。
例如,你可以创建一个名为 Open Door 的 Logic Bricks 资产。然后多个门实体可以使用同一个图。
可重用逻辑非常有效,适用于:
- 许多对象共享相同的行为。
- 每个对象需要稍微不同的局部值。
- 你希望在一个地方改进行为。
- 你希望项目保持有序。
这类似于:
| 可重用资产 | 被重用 |
|---|---|
| Python 脚本 | Python 组件。 |
| 实体模板 | 场景实例。 |
| 材料 | 网格实体。 |
| Logic Bricks | Logic Bricks 组件。 |
你不需要将同一图复制到很多地方,而是保持一个行为资产,并根据需要配置每个实体。
Logic Bricks 属性
Logic Bricks 可以暴露属性。
这些属性会同步到 Logic Bricks 组件中,在那里可以被局部覆盖。
例如,一个可重用的伤害图可以暴露:
- 最大生命值。
- 伤害量。
- 伤害冷却。
- 目标标签。
- 触发后是否销毁对象。
这样,每个使用该图的实体可以有不同的值。
一个尖刺陷阱可以造成较低伤害,而一个熔岩体积可以使用同样的逻辑并造成更高伤害。
流程事件
逻辑通常从事件开始。
常见的流程事件包括:
| 事件 | 运行时机 |
|---|---|
On Start |
当逻辑开始时。 |
On First Update |
在启动后的第一次更新时。 |
On Update |
在游戏更新时重复。 |
On Paused Update |
在暂停更新被允许时。 |
On Late Update |
在更新循环的后期。 |
On End |
当逻辑结束时。 |
事件是图的切入点。
没有事件或其他触发器,图没有理由开始工作。
逻辑流程
逻辑流程决定了发生什么以及发生的顺序。流程插槽连接事件和动作砖块。
例如:

这意味着打印动作将在图开始时发生。
重要的初学者区别是:
| 连接类型 | 目的 |
|---|---|
| 流程连接 | 定义何时运行动作。 |
| 值连接 | 为这些动作提供数据。 |
一旦明确后,Logic Bricks 变得容易理解。
更复杂的图可以分支、延迟、调度、调用函数、读取值、修改实体,并与组件进行通信。
运行时调试
Logic Bricks 在测试时可以显示有用的运行时反馈。
当拥有的实体在游戏模式下被选中时,已执行的砖块和链接可以高亮显示,这样你就可以看到哪些被运行过:

运行时调试可以帮助回答诸如:
- 事件是否运行?
- 条件是否通过?
- 动作是否执行?
- 图是否达到正确对象?
- 控制台中是否打印了错误?
如果一扇门没有打开,这些反馈将帮助你检查触发事件是否运行、条件是否通过,以及动作是否到达了门。
当你在测试游戏后选择一个逻辑砖块时,它还会在屏幕左下角显示它被执行的次数以及平均执行时间。
Logic Bricks 在状态机中的应用
Logic Bricks 不仅可以作为独立组件使用,还可以在状态机内部使用。
例如:
- 状态机状态可以使用 Logic Bricks 作为其行为。
- 转换可以使用 Logic Bricks 作为其条件。
状态机将在后面进行说明,但知道 Logic Bricks 可以是更大结构行为系统的一部分是有用的。
这意味着你可以使用可视化逻辑处理简单的交互,也可以用于像敌人状态这样的有组织的行为。
何时使用 Logic Bricks
Logic Bricks 很适合:
- 初学者学习游戏逻辑。
- 喜欢可视化逻辑的设计师。
- 快速原型。
- 简单交互。
- 触发器。
- UI 行为。
- 可重用的游戏事件。
- 连接系统。
初学者的好例子包括:
- 压力板打开一扇门。
- 拾取物增加生命值。
- 触发器启动时间线。
- UI 按钮更改场景。
- 危险物造成玩家伤害。
- 检查点保存位置。
对于非常大或复杂的系统,Python 可能更容易组织。对于许多游戏交互,Logic Bricks 快速、可视化且易于检查。
一个简单的规则
Cave 引擎的可视化脚本与 Python API 之间有一对一的对应关系,这意味着通过代码可以使用的每个函数也应该可以通过 Logic Bricks 使用。这意味着你可以自由选择你更喜欢的方式来创建游戏的逻辑。即:
- 当你希望将行为可视化为图时,使用 Logic Bricks。
- 当行为更容易用代码表达时,使用 Python。
- 你也可以结合使用两者!
这两种方法都是 Cave 的一部分,许多项目在某些系统中使用可视化逻辑,而在其他系统中使用 Python。