【案例分享】本地存档看着能用,刷新就没了:File 存档的两个静默失效,以及 clientCloud 的正确时机一句话结论本地 File 存档在桌面端和原生移动端能正常跑通,但在 WASM 上刷新即清零、在服务端模式下所有文件操作返回 nil/false —— 这两种情况都不报错、不崩溃、控制台干净,只是安静地什么都没存下来。一、隔离是白送的,别自己去拼路径星火编辑器的文件 API 跟标准
【案例分享】用引擎当命令行工具:程序化/离线 Lua 跑批处理一句话结论引擎不只能跑游戏,还能当命令行工具用 —— 起一个脚本,算完东西、写盘、退出。批量改 Prefab 字段、程序化生成贴图、预生成关卡数据,这些活不用手点编辑器,写段 Lua 跑一次就完事。但有三个不变量必须遵守,否则脚本会卡死到超时。它和游戏脚本的根本区别入口:游戏脚本是 Start() 起、主循环里持续 Updat
【案例分享】「本地改了但线上没变」:资源构建引用与预下载的排查路径一句话结论运行时遇到 Could not find resource xxx,九成不是文件不存在,而是它没进构建产物。判断依据只有一条:构建产物的 manifest 里没有的本地资源,运行时一定访问不到。下面这套排查顺序,能把「资源在哪一步被裁掉」定位到具体一行配置。先分清两件事:构建引用 vs 预下载这两个概念经常被混在
【案例分享】6 分钟只杀 3 只怪:无头模拟揪出的 11 个机制级缺陷一句话结论「打不中」「数值不涨」「游戏卡死」这类问题,靠看画面是找不到的。把游戏逻辑从渲染里剥出来,做成一个无头模拟(不开窗口、纯跑数值、定时打印状态),11 个机制级缺陷会在几分钟内自己浮出来 —— 其中 3 个完全不报错,2 个只在长局出现。下面每一条都有具体参数、现象和修法。为什么必须做无头模拟我原本的验收方式
【案例分享】0.04m 的默认碰撞边距毁了我的推币机:小物体物理两个默认值 + 3D 角色控制器四件套实测一句话结论引擎的物理默认值是按「人形 1.8m」这个尺度调的,你做硬币、棋子就是拿米级的尺子去量厘米级的东西;而 3D 角色控制器少挂一个组件,角色会原地不动且一句报错都不给。这篇把我踩过的两类坑摊开:小物体物理的两个默认值,和 3D 角色控制器的四件套依赖。两类的共同点是——配置错了不
【案例分享】不写 shader 也能发光:NanoVG 径向渐变做 Bloom 的 4 个参数、4 个坑一句话结论在星火编辑器里做发光 / Bloom,不需要后处理 shader:nvgRadialGradient 画一层径向渐变就够,一个发光圆只花 2 次 draw call。但要守住三条规则 —— 颜色在函数外乘好、只在 brightness > 1.0 时画光晕、渐变只画一层。先划边界
【案例分享】正交相机的 orthoSize 是全高还是半高:一个 0.5 因子,让我在等距视角里调了两天一句话结论camera.orthoSize 设的是视野全高,引擎内部拿 orthoSize * 0.5 当半高用。你手算屏幕到世界坐标时漏掉这个 0.5,结果就会和 GetScreenRay 差整整 2 倍,缩放补偿也会偏掉一半、锚点漂移。我遇到的症状等距视角的推图游戏,鼠标滚轮缩放。需
【案例分享】四个「完全静默」的引擎陷阱:不报错、不崩、画面正常,但功能就是没有一句话结论最耗时间的 bug 不是报错的那些,是「什么都没发生」的那些。下面 7 条全部经实测验证,其中 4 条完全静默 —— 不报错、不崩、画面正常,只是你写的功能根本没生效。每条都给出症状、根因、修法和验证数据。陷阱 1:3D 角色控制器必须用 KinematicCharacterController症状:
【案例分享】改了八版都不对:nvgRadialGradient 的 inner/outer 参数根本不生效一句话结论本引擎的 nvgRadialGradient 会忽略你传进去的 inner / outer 参数,径向渐变的边界固定在引擎自己的默认值上(约 0.35 × min(W,H))。你改那两个参数,画面不会有任何变化 —— 而且不会有任何报错。现象我想做「动量驱动的氛围灯」:中心干
【案例分享】改了八版都不对:nvgRadialGradient 的 inner/outer 参数根本不生效一句话结论本引擎的 nvgRadialGradient 会忽略你传进去的 inner / outer 参数,径向渐变的边界固定在引擎自己的默认值上(约 0.35 × min(W,H))。你改那两个参数,画面不会有任何变化——而且不会有任何报错。现象我想做「动量驱动的氛围灯」:中心干净、