- Creator 版本:v2.4 RC7
如果大厅子游戏这种模式,大厅是一个工程,每个子游戏分别是独立的工程。游戏中会有很多共享代码,例如一些工具类的静态方法,我想把这部分代码打包到一个asset bundle中,为其他bundle使用。我使用ts开发,目前没有太好的思路处理,因为之前调用都是先导入,但是现在使用bundle动态加载,就不知道怎么处理比较合适,或者从根本上讲我的思路有问题。
如果大厅子游戏这种模式,大厅是一个工程,每个子游戏分别是独立的工程。游戏中会有很多共享代码,例如一些工具类的静态方法,我想把这部分代码打包到一个asset bundle中,为其他bundle使用。我使用ts开发,目前没有太好的思路处理,因为之前调用都是先导入,但是现在使用bundle动态加载,就不知道怎么处理比较合适,或者从根本上讲我的思路有问题。
可以共享代码。不过目前仍不支持脚本文件重名。
我刚刚测试了一下,单独把一个脚本文件放到文件下设置成bundle,然后发布之后,config.json并没有对脚本文件的描述,单独放资源文件就会有,脚本文件必须要作为节点的组件才会被打包吗?
我觉得可以把公用的脚本和大厅资源放到一个文件夹,assets下,作为一个公共仓库,每个子游戏都是独立的工程,都会引入这个公共仓库
你的意思是每个子工程都会有一份公共资源的副本?
对,反正大厅的资源也不会很大,这样就相当于每个游戏都是独立开发的,打包也分开打包
因为2.4这个asset bundle实在很吸引人,我正在做一些可行性的测试,目前遇到的一个问题就是非组件类不会被打包进入asset bundle中,这就是导致调用asset bundle中的方法报错。
非常感谢,好用,就是将非component对象放入window中作为全局变量管理。
代码的话 是不是可以直接load(xx.js)???
对的,组件类可以直接通过字符串用,非组件类就放到一个你自己的命名空间下就好了
目前不行,没有单独load脚本这个操作
有一个loadScript的接口呢,但是获取脚本后能干什么没有说。
loadScript 是加载并运行脚本,什么都不返回的
我现在有一点点困惑,asset bundle对脚本有什么限制呢? 我做了一个测试,bundle中有个prefab,上面绑定了一个程序组件,组件中通过 cc.resources.load去动态加载子工程中resources下的资源,但是在bundle被加载到主工程中后,cc.resources是undefined。 我现在有一些困惑,在bundle中有哪些api可以使用,或者说bundle中用程序建议去做哪些工作,不建议做哪些工作。
最近又测试了一下,如果是远程加载bundle,使用window[xxx]这种方式是不行的。
建议你跨项目复用 asset bundle 的时候不要去加载 resources 这些bundle。你可以自定义其他名字的,因为resources是内置bundle,加载其他项目 resources ,会把本项目的覆盖了
不是组件的脚本里面还有node_module比如protobufjs,loadBundle后就会报错啊
遇到同样的问题
我现在是将一个游戏相关的资源放在一个bundle目录下,但这样一个游戏改动了,打包就会全打一遍,游戏多的话,肯定会慢很多,有没有办法只打包指定的bundle文件夹