[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。请指教
然后创建了一个 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。请指教
没有找到相关结果
已邀请:
要回复问题请先登录
0 个回复