播放模式

本页面为自动翻译,可能包含错误。如果发现问题,请通过“编辑此页面”链接帮助修正。

播放模式在场景视图针对当前场景运行游戏的模拟,因此您可以进行迭代而无需执行完整的构建和运行。按下播放,脚本即开始实时更新;按下停止,场景精确恢复到之前的状态。


工具栏

播放控件位于主菜单栏中央,运行时旁边会显示实时 FPS 读数:

控件 效果
播放 进入播放模式并运行当前场景
播放第一个场景 运行项目配置的第一个场景(项目设置 → 第一个场景),无论当前打开的是哪个场景。停止时编辑器场景将被恢复。
暂停 冻结模拟(场景保持显示在屏幕上)
恢复 继续暂停的模拟
单步 暂停时,前进恰好一帧更新
停止 结束模拟并恢复编辑时场景

Ctrl+P 切换播放 ⇄ 停止

播放时,视口会显示彩色边框——播放时为橙色,暂停时为蓝色

运行内容

组件脚本正常运行其生命周期和 update,与在发布的游戏中完全相同:播放时执行 awakeenablestart,每帧执行 update,停止时执行 disabledestroy。相同的 engine.Frame 上下文(时间、输入、变换、对象、服务)被注入,因此组件在播放中和在构建版本中行为一致。

输入

播放时,键盘和鼠标输入将传递到游戏。项目中的每一个输入操作资源都会在播放开始时应用,因此基于操作的脚本(如示例 FreeflyCamera——按住鼠标右键观察,WASD 移动)可以立即使用。

状态永远不会被污染

播放模式在其自己的场景副本上运行。模拟所做的任何操作——移动对象、生成、修改字段——都在该副本上进行,绝不会影响您正在编辑的场景。停止会精确恢复播放前的状态,因此您可以播放、实验和停止,而无需担心意外保存更改。

工作原理(底层)

由于您的脚本是编译后的 .zig 文件,播放模式会将其与引擎一起编译成一个小的播放库,编辑器加载并逐步执行该库,将实时场景渲染到视口中。该库仅在您更改脚本时重新构建,因此重复按下播放是即时的。脚本编辑后的第一次播放会进行一次快速编译。

有关完整设计以及进程内与子进程的权衡,请参阅引擎仓库中的 docs/plans/play-mode.md 设计说明。


← 所有文档 编辑此页面