Skip to content
写作:待补充更新:2026-05-16字数:—阅读:—维护:Azek431

创游世界脚本调试指南

一句话摘要

创游世界脚本调试的完整指南,涵盖常用调试工具、调试技巧、常见问题排查方法,帮助快速定位和解决脚本问题。

适合谁阅读

  • 遇到「脚本不执行」「广播没效果」问题的开发者
  • 想学习脚本调试技巧的初学者
  • 需要系统性调试方法的进阶用户

你将学到什么

  • 常用调试工具及其使用方法
  • 脚本调试的基本技巧
  • 常见问题的排查流程
  • 广播、变量、循环问题的定位方法
  • 联机调试的特殊技巧

常用调试工具

查看数值

作用:查看变量、属性的当前值。

使用方法

  1. 在试玩模式下打开调试面板
  2. 选择要查看的对象
  3. 查看其变量和属性值

适用场景

  • 检查变量是否正确初始化
  • 检查属性值是否按预期变化
  • 检查数组元素是否正确

逐行 Debug

作用:单步执行脚本,逐行查看执行过程。

使用方法

  1. 在脚本编辑器中设置断点
  2. 开始试玩
  3. 脚本执行到断点时暂停
  4. 单步执行,查看每一步的变量变化

适用场景

  • 复杂逻辑的执行路径不确定
  • 条件判断结果不符合预期
  • 循环执行次数异常

调用栈

作用:查看脚本执行路径和调用顺序。

使用方法

  1. 在 Debug 模式下查看调用栈面板
  2. 查看当前执行到了哪个脚本
  3. 追踪调用来源

适用场景

  • 追踪广播触发来源
  • 了解脚本执行顺序
  • 定位多层调用中的问题

查看碰撞盒

作用:查看物体的碰撞检测范围。

使用方法

  1. 试玩时打开调试层
  2. 查看物体周围的碰撞框
  3. 检查碰撞层级是否正确

适用场景

  • 角色走不动(可能是碰撞盒太大)
  • 碰撞检测不生效(可能是碰撞框位置不对)
  • 物体之间穿透(可能是碰撞层级不匹配)

调试技巧

技巧1:使用显示提示

最简单的调试方法是用「显示」或「打印」输出变量值。

当点击时
    新建局部变量 测试值 = 100
    显示 "测试值:" + 测试值  // 输出到屏幕
    发送广播 "测试广播"
结束

当收到广播 "测试广播" 时
    显示 "广播收到"  // 确认广播被执行
结束

优点:简单直接,不需要额外工具 缺点:影响游戏体验,正式发布前要删除


技巧2:使用广播日志

用专门的调试广播输出日志,方便追踪。

当点击按钮时
    发送广播 "调试_打印" 并携带文本 "按钮被点击"
    // ... 正常逻辑
结束

当收到广播 "调试_打印" 时
    打印日志 参数.信息
结束

优点:不显示在游戏界面上,不影响体验 缺点:需要额外的日志查看面板


技巧3:分步测试

先把脚本拆成多个小段,逐段测试。

// 第一步:测试发送端
当点击时
    发送广播 "测试_A"
    显示 "已发送广播A"
结束

// 第二步:确认收到后,添加处理逻辑
当收到广播 "测试_A" 时
    显示 "收到广播A,开始处理"
    // 添加处理逻辑
    显示 "处理完成"
end

技巧4:使用临时广播名

测试时使用带编号的广播名,方便追踪。

// 测试时
当点击时
    发送广播 "test_001"
结束

// 测试完成后改成语义化名称
当点击时
    发送广播 "玩家_点击按钮"
end

技巧5:条件隔离

用临时条件限制触发范围,避免误触发。

当收到广播 "刷新UI" 时
    // 添加临时调试条件
    如果 获取系统属性 "调试模式" = 真
        显示 "收到刷新UI广播"
    结束
    // 正常逻辑
结束

常见问题排查

问题1:脚本不执行

排查步骤

  1. 是否有触发时机?
  2. 触发时机是否写对?
  3. 物体是否有对应组件?
  4. 是否保存了脚本?
  5. 是否在试玩模式下?

检查清单

  • [ ] 有触发时机(没有则不会执行)
  • [ ] 触发时机正确(如「当点击时」需要可互动组件)
  • [ ] 物体有对应组件
  • [ ] 脚本已保存
  • [ ] 在试玩模式而非编辑模式

问题2:广播没效果

排查步骤

  1. 广播名称是否完全一致?
  2. 接收脚本是否在「当收到广播时」下?
  3. 接收者是否在当前地图?
  4. 广播时机是否在监听者初始化之后?

检查清单

  • [ ] 发送和接收的广播名完全一致
  • [ ] 大小写、空格是否一致
  • [ ] 接收脚本有「当收到广播时」触发时机
  • [ ] 接收者在当前地图
  • [ ] 监听者初始化后再发送广播

问题3:变量值不对

排查步骤

  1. 变量是否正确初始化?
  2. 变量作用域是否正确?
  3. 变量类型是否匹配?
  4. 是否有其他地方修改了变量?

检查清单

  • [ ] 变量在使用前已初始化
  • [ ] 变量作用域正确(局部变量/属性/变量表)
  • [ ] 变量类型正确(数字vs文本)
  • [ ] 没有其他地方意外修改

问题4:循环导致卡死

排查步骤

  1. 无限循环内是否有等待?
  2. 循环退出条件是否满足?
  3. 是否有多层嵌套循环?

检查清单

  • [ ] 无限循环内有「等待」积木
  • [ ] 循环退出条件正确
  • [ ] 避免过多层嵌套

问题5:碰撞检测不生效

排查步骤

  1. 两个物体是否都有物理组件?
  2. 物理组件的碰撞层级是否匹配?
  3. 至少有一个物体不是「固定」的?
  4. 碰撞检测是否开启?

检查清单

  • [ ] 两个物体都有物理组件
  • [ ] 碰撞层级匹配
  • [ ] 至少有一个物体可移动
  • [ ] 物理组件碰撞检测已开启

问题6:UI状态错乱

排查步骤

  1. 真值是否放在正确位置?
  2. UI是否只负责显示?
  3. 切地图后数据是否丢失?

检查清单

  • [ ] 真值放在地图层或系统层
  • [ ] UI只负责显示和接收输入
  • [ ] 跨地图数据用玩家变量

联机调试技巧

联机时的特殊问题

联机模式下脚本执行逻辑与单机不同:

问题原因解决方法
UI 很卡旧版本 UI 同步问题更新到 4.52.54+
数据不同步只修改了本地数据使用正确的同步变量
广播不生效广播没有下沉使用「地图广播下沉」

联机调试建议

  1. 先在单机模式下调通:基本逻辑在单机下调通,再测试联机
  2. 注意同步变量:需要同步的数据要用同步变量
  3. 使用地图广播下沉:需要地图处理的广播使用下沉功能
  4. 控制调试输出:联机时每个玩家的调试输出都会执行,避免过多日志

调试工具速查

工具作用适用场景
查看数值查看变量当前值变量值不对
逐行 Debug单步执行脚本复杂逻辑执行路径
调用栈查看调用顺序追踪调用来源
查看碰撞盒查看碰撞范围碰撞检测不生效
显示提示输出变量值快速测试
广播日志记录执行日志不影响游戏体验

调试流程速查

发现问题

确认问题类型(脚本不执行/广播没效果/变量值不对)

使用对应排查步骤

定位问题原因

修复问题

测试验证

继续下一个问题

相关页面

待验证问题

  • [待验证] 某些调试工具的具体快捷键
  • [待验证] 联机模式下调试工具的行为差异

后续优化方向

  • 补充更多实际调试案例
  • 增加视频演示
  • 完善联机调试专题

参与维护

发现文档问题?

你可以编辑页面、提交反馈,或复制链接给维护者,帮助这个资料库继续变好。

由 Azek431 整理与维护 | 基于 MIT 许可证开源