楼主是想该bundle下的js脚本跟主的分开,单独加载。不过3.x后的bundle乱糟糟的,有一些bug。我都怀疑他们测试人员严重不足 
官方文档这么说的还是有其他文档?我看看。
是啊,遇到无数的坑了
export class BundleA extends Component {
onLoad() {
console.log("BundleA script loaded");
}
}
没关系啊,分包归分包,你把打印的代码写类函数里面就不会执行了啊。你要想把这些脚本动态挂载那就把@ccclass标签移除,const属性也一并删除,生命周期照样写,当你挂载到节点上的时候执行生命周期。
一般情况像你说的这样写肯定没问题,但是我有一些逻辑要写在class外面的,想要在加载bundle时执行。官方也没说所有的逻辑一定要写在class中。也不是所有的脚本一定是class吧。
生命周期有个init函数,先于onLoad执行,你可以写在init里面,但是init弊端是获取不到节点上的组件,onLoad可以获取,一般onLoad就够用了,init主要是初始化数据
建议不要把代码写在类外面,因为1.后期不好维护,这个脚本写一点那个脚本写一点后期找死人;2.每个脚本类外边的代码执行顺序难以预计。
cocos提供的生命周期完全够用,不要搞其他的了
我认为,bundle中的东西,不管是脚本还是其他资源,在我主动加载这个bundle之前,在这个bundle之外其他地方应该对这个bundle无感知的,不能加载这个bundle中的任何东西(除非有引用),官方文档也是这么写的(我理解的)。我的这个问题跟生命周期没有关系的,跟写不写在class外面没关系的。
你这是预览吗? 发布试试?
我也是这么理解的
如不这样热更新分包就出问题了
这个合并是指构建后,编辑器上预览不一样,预览情况下是目前是加载的 temp 下的缓存单个文件
重点不是合不合并,而是为什么我没主动加载bundle,为什么bundle中的脚本被加载了?
抱歉,目前的实现, web 预览没有分 bundle,所有脚本默认在一个 main bundle 里,测试 bundle 加载可以在 构建之后验证一下看看
之后会排期处理这个问题
我这不是web,是PC模拟器,也是在一个bundle中的?
是的,目前预览走的是同一套机制
好的,明白了
测试热更,只能构建win32项目或者在手机上测试,模拟器里测不了。
