运行是在编辑器内以第一人称行走、测试世界逻辑规则的功能。无需启动服务器,进入区域时声音、标题、动画就会执行。规则、行走物理和动画以与服务器相同的 20 TPS(每秒 20 刻)运行。
运行有两种方式。
| 方式 | 相机 | 玩家 |
|---|
| 运行 | 第一人称 — 玩家的眼睛 | 由自己直接行走。 |
| 模拟 | 保持编辑相机(自由) | 蓝色胶囊体即玩家,拖动即可移动。 |
运行中的动作不会改变世界。停止后一切都会恢复原状。
| 内容 | 位置 |
|---|
| 开始运行 | 主工具栏中央的运行按钮(▶) |
| 选择方式 · 起始位置 | 运行按钮旁的 ▾ |
| 直接以运行方式开始 | Alt+P |
| 直接以模拟方式开始 | Alt+S · 工具 › 模拟 (自由相机 · 逻辑) |
| 从规则直接开始 | 世界逻辑面板「运行测试」· 区域触发器向导「创建并立即测试」 |
| 运行状态面板 | 开始运行时打开(「窗口」菜单「运行状态」)。 |
运行按钮旁的 ▾ 菜单如下。
| 分组 | 项目 |
|---|
| 方式 | 运行 — 在视口中行走 (Alt+P) · 模拟 — 自由相机,仅逻辑 (Alt+S) |
| 起始位置 | 从当前相机位置 · 从出生点 (项目设置的默认出生点) |
| 显示 | 运行信息叠加 (刻 · 区域 · 标志) |
- 创建一条区域触发器规则 — 见世界逻辑的快速使用
- 将相机放在区域前方。
- 点击运行按钮(或按 Alt+P)。
- 用 W A S D 行走进入区域。声音和标题会出现。
- 如果右下角显示「触发 (数字键)」列表,可用数字键触发相应规则。
- 通过世界逻辑面板的历史或「运行状态」面板的事件记录,查看哪些已执行、哪些被跳过。
- 按 Esc 结束。
| 键 · 操作 | 动作 |
|---|
| 鼠标 | 环顾四周 |
| W A S D | 行走 |
| Space | 跳跃 |
| Ctrl 或 Shift | 疾跑 |
| F · 右键 | 与注视的 Actor 交互(触发器「右键 Actor」) |
| 1~9 | 执行「触发」列表中的规则 |
| F8 | 脱离 — 离开身体,切换到自由相机(模拟) |
| Shift+F1 | 释放鼠标。单击视口可重新捕获。 |
| Pause | 暂停 · 继续 |
| Esc | 结束运行 |
交互对象是注视方向 15° 以内、6 格以内的展示 · 文本 Actor。交互组件的点击盒在视线 6.5 格以内碰到时即为对象。没有对象时,动作栏中会显示「没有可交互的 Actor」。
| 操作 | 动作 |
|---|
| 编辑相机操作 | 保持原样自由飞行。 |
| 拖动胶囊体 | 移动玩家(蓝色胶囊体)。 |
| Ctrl+单击 | 将身体传送到单击的位置。 |
| F8 | 进入身体,切换到第一人称运行 |
| Esc | 结束 |
用 F8 切换方式时,规则状态(变量、等待中的动作等)也会原样延续。
| 按钮 | 动作 |
|---|
| 运行(▶) | 开始 |
| 暂停 | 运行中暂停 · 继续(Pause) |
| 单刻 | 暂停时只前进 1/20 秒 |
| 脱离 | 离开 · 进入身体(F8) |
| 停止 | 结束(Esc) |
开始运行时会复制规则来执行。运行中修改规则,会从下一次运行开始生效。
| 触发器 | 在运行中 |
|---|
| 进入区域时 · 离开区域时 · 处于区域内时 | 按脚部位置自动判定 |
| 场景开始 · 计时器 | 自动 |
| 收到信号时 · 函数 · 序列结束时 | 自动(随发送方 · 调用方 · 播放方而定) |
| 碰撞时 | 行走中的身体碰到 Actor 盒时自动发生 |
| 右键 Actor | F · 右键 |
| 破坏方块时 · 放置方块时 · 右键方块时 · 红石信号 · 弹射物命中时 · 玩家死亡时 · 受到伤害时 | 不会自动发生 —「触发」 |
「触发」会按该触发器已发生的方式执行规则。过滤和条件照常判断。触发者为运行中的身体。
| 位置 | 内容 |
|---|
| 视口右下角「触发 (数字键)」 | 仅能手动触发的触发器中已启用的规则(最多 9 条)。数字键 1~9 |
| 世界逻辑面板规则行 · 头部的「触发」 | 同样的规则。不在运行中时会先开始运行再触发。 |
| 「运行状态」面板「规则触发」 | 所有规则。自动触发器也不等待,立即执行。 |
| 动作 | 在运行中 |
|---|
| 声音 | 以试听方式播放(接收者为运行中的身体时)。 |
| 屏幕标题 · 聊天消息 · 动作栏文本 | 以画面文字显示。 |
| 播放动画 · 显示 Actor · 隐藏 | 以非破坏性预览显示。 |
| 传送 | 移动行走中的身体。 |
| 击退 | 推开行走中的身体。 |
| 过场动画镜头 | 视口相机沿路径移动。结束后恢复原视角。 |
| 填充方块 · 放置一个方块 | 仅显示橙色盒预览。世界不会改变。 |
| 造成伤害 · 治疗 · 药水效果 · 给予物品 · 杀死 | 虚拟玩家状态改变,HUD 上显示一行。 |
| 检查点 · 粒子 · 服务器命令 · 取消事件 | 只留下记录。 |
阻挡框会阻挡行走中的身体。barrier · push 两种方式相同。
| 栏 | 内容 |
|---|
| 头部 | 方式 · 运行中/暂停 · 刻编号 · 时间 · 暂停 · 单刻 · 脱离 · 停止按钮 |
| 玩家 | 生命值 · 游戏模式 · 主手 · 副手 · 效果 · 获得的物品 · 死亡 · 脚部位置 · 区域 ·「重置状态」 |
| 规则触发 | 每条规则一个「触发」按钮 |
| 事件记录 | 带有刻编号的记录。勾选「已跳过」可同时查看因过滤、条件而被跳过的行。 |
游戏模式、主手、副手是条件「游戏模式」·「手持物品」所参照的值。在创造模式、旁观模式下不会受到伤害。「重置状态」会回满生命值,并清空效果和获得的物品。逻辑状态和时钟保持不变。
| 选项 | 位置 | 含义 |
|---|
| 方式 | 运行 ▾ | 运行 · 模拟 |
| 起始位置 | 运行 ▾ | 当前相机位置 · 项目设置的默认出生点 |
| 运行信息叠加 | 运行 ▾ | 在视口上叠加显示刻 · 区域 · 标志。 |
| 时段 · 天气 · 拥有全部权限 | 世界逻辑面板「模拟」 | 条件「时段」·「天气」· 权限过滤所参照的值 |
| 游戏模式 · 主手 · 副手 | 运行状态面板 | 条件「游戏模式」·「手持物品」所参照的值 |
| 键 | 动作 |
|---|
| Alt+P | 开始运行 |
| Alt+S | 开始模拟 |
| Esc | 结束 |
| F8 | 脱离 · 进入身体 |
| Pause | 暂停 · 继续 |
| Shift+F1 | 释放鼠标 |
| F · 右键 | 交互(运行) |
| 1~9 | 触发 |
在逻辑图中为动作节点设置断点(F9)后,运行会在该动作之前暂停。继续执行(Pause)后从该动作接着运行。运行中执行过的节点会在逻辑图中短暂高亮。
运行按与服务器相同的规则执行,但存在以下差异。
| 编辑器运行 | 实际服务器 |
|---|
| 只有一名玩家(运行中的身体) | 多名玩家 |
| 方块 · 战斗 · 死亡触发器只能通过「触发」 | 由实际游戏事件触发 |
| 不改变世界 | 实际更改方块 |
| 序列器镜头切换只做记录 | 切换观看者的视角 |
| 服务器命令 · 粒子 · 检查点只做记录 | 执行 |
| 只能听到有文件的声音事件 | 资源包 · 原版声音 |
| 状态(仅一次记录 · 变量)每次运行重新开始 | 保留在 state.json 中 |
- 开始运行时即使没有任何规则,也可以行走和确认区域。
- 「受到伤害时」·「玩家死亡时」即使在运行中执行伤害动作也不会自动发生(防止无限循环)。请用「触发」进行测试。
- 运行中在面板里直接修改世界,该更改会保留。结束时会在输出日志中提示。