[LayaAir3]脚本集怎么用?

我在 src/ 下面新建了一个 GScript 文件夹。GScript 文件夹下建了一个脚本集配置 GScript.bundledef。
然后创建了一个 GCtr.ts 文件继承自 Laya.Script

工程入口脚本是 Main.ts 

在 Main.ts 的 onStart 方法中。动态加载脚本集:

```
const { regClass, property } = Laya; 
@regClass()
export class Main extends Laya.Script { 
async onStart() {
console.log("Game start");
// 手动加载脚本集
const isSuccess = await Laya.loader.loadPackage("GScript"); // "GScript" 为分包目录名称
console.log(`isSuccess: ${isSuccess}`) 
console.log("所有已注册类:");
const classMap = (Laya.ClassUtils as any)._classMap;
for (const key in classMap) {
console.log(` ${key}:`);

const GCtrClass = Laya.ClassUtils.getClass("GCtr");
if (!GCtrClass) {
console.error("未找到 GCtr 类");
return;

// 3. 直接添加到当前脚本的owner节点上
// this.owner 就是Main脚本挂载的节点
const gCtrInstance = this.owner.addComponent(GCtrClass); 
await gCtrInstance.initAsync();
}
}
```

为什么无法找到 GCtr 类。

我这么写的目的,就是为了在首屏渲染以后,再动态加载脚本包。然后把流程交给 GCtr .

第一次用Laya。请指教
已邀请:

谷主

赞同来自:

加载脚本集就和加载js文件是一样的,就是使用浏览器的方法,或者使用封装好的Laya.Browser.loadLib("xxx.js")。所以只能在web上用,小游戏平台不能这样用。如果在小游戏平台,就需要把这个脚本集设置到分包的入口属性上,这样加载分包就可以了。

要回复问题请先

商务合作
商务合作