有系统信息吗?然后看看有没有报错?
【Bug 提交】PinK play 实时预览画面全黑(UI 可见),脚本编译因 console.time is not a function 全部失败
PinK 版本号
0.0.2.0 Beta(内置引擎 4.0.0-beta.0)
系统环境
- macOS(Apple Silicon)
- 项目:pink(TypeScript + 2D UI,工程为 3D 模板但按 2D 实现)
- 预览方式:PinK 内置「简单浏览器」/ 编辑器 play 按钮(
http://localhost:9527/?scene=<scene-uuid>)
复现步骤
- 打开项目,编辑任意
scripts下的.ts脚本并保存(或在资源管理器中刷新db://assets)。 - 点击 PinK 的 play 按钮,或用「简单浏览器」打开预览页。
- 观察预览画面。
期望表现
预览中能看到完整游戏世界层(地面、角色、敌人)与 UI,画面与最新源码一致。
实际表现
- 场景加载成功,UI 层正常渲染并运行;
- 世界层(地面贴图、角色、敌人) 全黑 ,看不到任何实体;
- 由于预览运行的是 旧的编译产物 ,与最新图集帧定义不匹配,导致 SpriteFrame 取帧失败;
- 编辑器日志中脚本导入持续失败,报错:
TypeError: console.time is not a function; - 该错误对 每个
.ts均触发(全部imported: false、invalid: true); - 对比验证:
构建发布 → web-mobile产出的包运行 完全正常,说明源码本身无问题,仅「编辑器内脚本编译/预览」通道失效。
关键证据
| 检查项 | 结果 |
|---|---|
assets/scripts/**/*.ts.meta 中 imported
|
全部 false
|
预览 /scripting/x/chunks/... 中的代码产物 |
旧版缓存 |
tsc --noEmit 类型检查 |
assets 下无错误 |
| 构建产物(web-mobile) | 运行正常,世界层与 UI 均可见 |
根因
packer-driver 的 applyAssetChanges(dist/core/scripting/packer-driver/index.js)无条件调用了 console.time('update entry mod') / console.timeEnd(...),而当前宿主环境的 console 对象未实现这两个方法,抛出 TypeError,导致 ScriptManager.compileScripts 整体中断、脚本资源导入失败,预览被迫回退到旧编译缓存。
建议修复
-
packer-driver中所有console.time / console.timeEnd增加方法存在性判断(如console.time?.()),或改用内部 logger 计时; - 脚本编译失败时在编辑器 UI 给出显式阻断与报错提示,避免「静默沿用旧产物」造成误导性异常。
附件
UUID
服务器 uuid:18718c50130b4830b058cb4f477b810c (这是一个查问题的聊天)
终于更新了 我想问和vscode+codex的区别是?
