请教下obb分包的问题 不知是否与引擎有关

res下的import 是不能打在obb包内的 但问题依旧存在 只是大大减小了 还是有资源无法读取 mp4肯定是不行了 现在怀疑粒子也是有问题。。 各种坑啊。。。整个简单的obb都搞死 哎哎。。

@jare 引擎大大可以帮忙看一下。 我这里也遇到了。我临时解决方案只把jpg或者PNG加到OBB里面

https://forum.cocos.com/t/obbfile-getfiledata/73399

看看这个,应该是这个问题

OBB 的资源应该引擎内部去读取就可以了。多线程访问资源都可能会有问题:

  • 引擎本身的代码不是线程安全的
  • 读取资源后可能会调用 opengl 代码,这也是不安全的
  • 执行 js 脚本也存在线程安全问题

上述的ZipUtil解决方法,是否可行。

如果可行,你们是否考虑合并到新版本里面

@minggo

根据上面修改spine依旧会报错提示看来除了jpg和png什么都有风险

又来新问题了…用了obb 把mp3都打包到apk了!还是没声音、声音文件错误.整包又没问题.这个又什么问题…

我这里是没有什么问题

你可以看看源码:
正常FileUtil的情况是,判断是否有OBB,有OBB尝试从OBB读取,OBB不存在,从包体本身读取

而声音文件的处理方法在Java层是这样的:
有OBB,从OBB读取
没有OBB,从包体本身读取。

所以有OBB的情况,
1.把音效相关放到OBB里面。
2.改Java代码,音效判断OBB的代码注释掉

稍微改了下, 先找obb, 在找包体.
生成的obb是zip格式, 需要存储模式, 不然声音读不出来.
7z a -tzip -mx0 file_obb

那不知道obb包内资源做纹理压缩会不会出问题

因为纹理压缩后还有zip再压一遍图片 缩小体积

java直接改成进入obb判断内?正常有obb不就是进入那个判断内吗 还需要改什么?mp3的json文件和源文件都丢到opp了!还没声音 搞不懂…

@522722951 我在那个帖子回复了。你这里的问题也是因为多线程访问资源导致的?必须是多线程访问资源吗?是否会多线程调用到 opengl 代码呢?

不好意思,没看到回复。

确实是的,这个BUG三年前我做cocos2dx的时候就遇到过,也是一样的解决方法加线程锁

只是没想到CCC没解决这个BUG。

最近使用obb也遇到了,结果就是obb暂时只能放图片和音频文件,而且图片和音频不能是压缩过的,压缩的资源能找到,但是读取不到数据,不知道是不是多次压缩的问题,还有obb文件夹不能叫assets。

通过查看源码确认 lite 是支持 OBB 的,代码和 -x 也没什么区别,问题不是不支持 OBB 引起的。问题是开发者在不同线程中调用引擎代码导致出问题。引擎的代码不是线程安全的。如果把引擎的部分代码改成线程安全也是没有意义的,而且也会降低引擎的性能。
因此该问题不建议修改,开发者如果要在多线程使用的话,自己去定制引擎吧。

creator有没有obb分包的例子啊

感谢层主。本人遇到一个问题,使用jobb命令行生成的obb包拷贝到手机目录下后,creator无法挂载;使用zip打包后,必须手动将后缀改为.obb;现在用楼主这个7Z命令行可以完美解决(7z a -tzip -mx0 %obb_name% % source_dir%)

发现obb包也不支持ttf字体库文件