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 代码来让你创建游戏玩法行为。

cave-nocode-b.png

本课程介绍了 Logic Bricks 的定义、位置、运行方式以及何时应该使用它们。稍后的深入课程会带你学习整个系统,但本概述将帮助你理解 Logic Bricks 在 Cave 工作流程中的位置。

视频教程

我们有一个完整的 视频教程 来教你如何开始使用 Logic Bricks。我们建议你观看它。

在 YouTube 上观看

这将是深入学习它们的更好方法。

但是如果你想继续这里,我们就做一个快速介绍:


什么是 Logic Bricks?

Logic Bricks 是可视化的逻辑图,允许你快速直观地创建逻辑,而无需编写实际代码。

image.png

如果你熟悉其他可视化脚本方法,比如 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 的实体上。

image.png

该组件选择它应该使用哪个 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 当逻辑结束时。

事件是图的切入点。

没有事件或其他触发器,图没有理由开始工作。

逻辑流程

逻辑流程决定了发生什么以及发生的顺序。流程插槽连接事件和动作砖块。

例如:

image.png

这意味着打印动作将在图开始时发生。

重要的初学者区别是:

连接类型 目的
流程连接 定义何时运行动作。
值连接 为这些动作提供数据。

一旦明确后,Logic Bricks 变得容易理解。

更复杂的图可以分支、延迟、调度、调用函数、读取值、修改实体,并与组件进行通信。

运行时调试

Logic Bricks 在测试时可以显示有用的运行时反馈。

当拥有的实体在游戏模式下被选中时,已执行的砖块和链接可以高亮显示,这样你就可以看到哪些被运行过:

image.png

运行时调试可以帮助回答诸如:

  • 事件是否运行?
  • 条件是否通过?
  • 动作是否执行?
  • 图是否达到正确对象?
  • 控制台中是否打印了错误?

如果一扇门没有打开,这些反馈将帮助你检查触发事件是否运行、条件是否通过,以及动作是否到达了门。

当你在测试游戏后选择一个逻辑砖块时,它还会在屏幕左下角显示它被执行的次数以及平均执行时间。

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。