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 的 Blueprints,每个砖块本质上是一个节点。但在 Cave 的命名规范中,它们被称为 Bricks(砖块)。砖块可以表示多种逻辑:

  • 事件。
  • 动作。
  • 数值。
  • 数学运算。
  • 字符串。
  • 引擎工具。
  • 实体操作。
  • 组件操作。
  • 资源引用。
  • 函数。

你通过连接这些砖块来构建行为。

如果你是编程新手,Logic Bricks 是一种友好的方式来开始创建交互,因为你可以以图形方式看到行为。

例如,一个简单的图形可以表示:

当玩家触发此触发器时:
  打开门。
  播放声音。
  禁用该触发器。

对于初学者来说,这种视觉方式比长脚本更容易理解。

这不是完整的 Logic Bricks 课程

本课只是概览。Logic Bricks 还可以更深入:

  • 函数。
  • 流程控制。
  • 数值插槽。
  • 运行时调试。
  • 注释。
  • 资源处理砖。
  • 可复用图。
  • 状态机集成。

这些内容将在后续课程详细讲解。

现在的目标是理解 Logic Bricks 的作用:它们是一种可视化构建行为、连接系统、快速原型交互以及让游戏对象响应事件的方法。

如果你想要完整的 Logic Bricks 教程,请观看这个视频

Logic Bricks 资产

Logic Bricks 图表是一种资产。你可以在 Asset Browser 中创建它,就像创建场景、Python 脚本、时间线、材质或实体模板一样。

作为一种资产,它可以:

  • 被命名。
  • 组织在文件夹中。
  • 在 Asset Browser 中选择。
  • 在属性标签中编辑。
  • 被多个实体复用。
  • 随项目保存。

这一点很重要:图表本身是项目内容。

例如,你可以创建一个名为 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。