嗨,开发者们!
我们很高兴地宣布:增强 Roblox Studio 调试能力的一些功能——我们称之为 Better Breakpoints(更好的断点)——的测试版发布了。现在,你可以很容易地自定义 Breakpoints(断点)是条件性的、用于记录信息,或是被触发时继续还是不继续执行程序。
更棒的是,我们还增加了快速创建预设 Breakpoints(断点)的功能,以方便用于以下几种使用情况:
- ‘Standard’ Breakpoint(“标准”断点)预设:与目前在 Script Editor(脚本编辑器)中可以设置的默认断点相同。
- Logpoint(记录点)预设:在不停止执行程序的情况下记录一条信息。不再需要使用 print() 语句了!
- Conditional Breakpoint(条件断点)预设:仅在满足给定条件时才停止运行程序。
以下是这些新功能的讲解,以及一些关于即将推出的其他新功能的信息!
新功能
Breakpoint(断点)设置
Breakpoint(断点)现在拥有几个属性,你可以通过‘Edit Breakpoint(编辑断点)’对话框轻松进行定制:
-
Condition(条件):Condition(条件)是一个 Luau 表达式,它决定了程序在执行的过程中是否会“hit(到达)”Breakpoint(断点)。如果条件表达式在运行时为空或为 True,那么 Breakpoint(断点)的动作就会触发。
-
Log Message(记录信息):Log Message(记录信息)动作在 Breakpoint(断点)到达时,向输出窗口打印一条信息。它的作用类似于脚本中的 print() 语句。当某些值或语句需要在程序运行过程中输出时,记录信息是最理想的,它不会中断程序的执行。因此当 Continue Execution(继续执行)被启用时,记录信息是最有用的(但不是必须)。
-
Continue Execution(继续执行):Continue Execution(继续执行)动作决定了当到达 Breakpoint(断点)时,程序是否停止执行。当你希望了解程序的运行情况而不希望中断运行,就可以使用 Continue Execution(继续执行)。如上所述,它在与 Log Message(记录信息)动作一起使用时最有用。
Breakpoint(断点)预设
Breakpoint(断点)预设允许你创建具有预设设置的 Breakpoint(断点),以满足常见的使用情况。右键点击脚本左边的行号的右侧,选择一个预设项,即可插入具有相应设置的 Breakpoint(断点)。你可以在创建 Breakpoint(断点)后进一步定制它。
- ‘Standard’ Breakpoint(“标准”断点):在上面的右键菜单中显示为“Breakpoint(断点)”。‘Standard’ Breakpoint(“标准”断点)与目前在 Script Editor(脚本编辑器)中可以设置的默认 Breakpoint(断点)相同。它没有条件,也不记录信息。到达它时,程序将停止执行。当你想检查某一当前正在运行的行的运行状态时,它是理想的选择。
注意:Standard’ Breakpoint(“标准”断点)仍然可以通过左键点击脚本的左侧来添加。
-
Conditional Breakpoint(条件断点): Conditional Breakpoint(条件断点)带有一个条件表达式,决定到达它时是否触发。一旦触发就停止执行,且不记录信息。
-
Logpoint(记录点):到达时,输出一条信息。触发时不会停止执行,且默认情况下不需要条件。作为我们自豪地引入 Studio Debugger(调试器)的一项新功能,Logpoints(记录点)为调试提供了全新的能力,它可以完全取代与调试有关的打印。在程序执行过程中,任何用于记录某些数值的 print() 语句都可以被替换成 Logpoint(记录点),包括任何决定 print() 语句是否应该执行的条件语句。
即将推出
我们正在对 Breakpoint(断点)进行一些额外的改进:
- Breakpoint Widget(断点小工具)将可以反映 Condition(条件)、Log Message(记录信息)和 Continue Execution(继续执行)的状态
- 允许指定 DataModel 作为 Breakpoint(断点)设置,允许直观地使用 Universal Breakpoint Beta 46 所引入的 DM 上下文功能
非常感谢 @idevride @altisaltaccount @ameowth07 @windy0724 @wengawenga 为我们的社区带来了 Better Breakpoints(更好的断点)!更多、更酷的调试器升级即将推出。敬请关注~