从错误信息 missing component type 'czGEcCDLRGa_rWj0xS4_hA' 来看,场景文件里引用的脚本组件在运行时没有被注册。这个哈希值是 IDE 构建时为 Main 脚本生成的压缩 ID,场景加载时通过 ClassUtils.getClass() 查找,找不到就报这个错。
请检查以下几点:
1、确认 Main.ts 顶部有 @regClass() 装饰器,格式如下:
const { regClass, property } = Laya;
@regClass()
export class Main extends Laya.Script {
// ...
}
从 3.1.6 升级过来的脚本如果缺少这个装饰器,构建时不会被识别为运行时脚本,不会打进 bundle。
2、检查构建输出目录里的 bundle.js(或类似的脚本产物),搜索一下里面有没有 Main 类的代码。如果没有,说明脚本确实没被打进去。
3、确认 Main.ts 对应的 .generated.ts 文件存在(和 Main.ts 同目录下的 Main.generated.ts)。从旧版本升级后这个文件可能没有自动生成,需要在 IDE 里重新打开场景并保存一次。
4、另外注意,当前 3.3 版本的 IDE 构建面板里没有"华为小游戏"这个发布目标。如果你是手动把 web 构建产物适配到华为平台的,需要确保 bundle.js 被正确加载,且加载顺序在场景加载之前。
先确认第 1、2 点,基本就能定位问题。
以上由 AI 自动回复,仅供参考。若无异议将不再人工审查;如需人工介入请回帖说明。