关于resouce目录和prefab的问题

1.文档里里面说:
如果一份资源不需要由脚本直接动态加载,那么千万不要放在 resources 文件夹里。

我现在代码里面有很多的prefab,都是动态加载的,所以放到了resource目录下面,用loadres来加载。
但是也有一部分不需要动态加载的,如果要分离会很乱。而且美术也不好分。

请问如果我把没有动态加载的prefab也放到了resouces目录下面会产生什么样的后果。

2.还有声音,我用audioEngine.play去播放好像也要放到resouces下面才能播放。声音是否需要单独处理销毁。像前面prefab进来的文档说要单独再销毁一下资源。声音要怎么处理

1.[quote=“299184, post:1, topic:48747”]
请问如果我把没有动态加载的prefab也放到了resouces目录下面会产生什么样的后果
[/quote]会增加加载时间。[quote=“299184, post:1, topic:48747”]
我用audioEngine.play去播放好像也要放到resouces下面才能播放
[/quote]
应该在任何文件夹都可以播放,没有必要在resouces下[quote=“299184, post:1, topic:48747”]
前面prefab进来的文档说要单独再销毁一下资源
[/quote]
动态加载需要自己删除资源。

会干扰构建时的 json 自动合并策略,导致 json 文件发布后变多(主要是 web 平台)
另外还会增大 settings.js,自动剔除也会失效

是的,要放在 resources 下面,配合 cc.url.raw 服用效果更佳。

再请问下:
audioEngine.play 我就是用cc.url.raw播放的,请问播放完后,要手工释放内存吗?如果需要要怎么释放才是安全的.

试试 cc.loader.release 来释放

这种方式加载的,也是通过cc.loader.release 释放?我代码里只是调用了下
cc.audioEngine.uncache(this.audio);
不知道能不能正确释放?

另外,我发现,在iOS中自动GC很难触发,用iPhone5测试,几个场景来回切换个几次,内存就能爆到500MB,然后,程序就被直接杀死了:3::3::3:。所以,想考虑手动GC,如果场景内没有用到动态加载(cc.loader.loadRes之类的方法),是不是在LoadScene()的回调中调用cc.sys.garbageCollect()就行了?

另另外:目前使用的是CocosCreator_v1.5.2_2017070701

没有用到动态加载的话,场景所依赖的资源在场景切换后可以选择自动释放,点击场景 asset,在 inspector 中勾选自动释放资源。切换场景后手动 GC 是可以的,在 1.6 及后续版本中,GC 会比现在灵敏很多,所以体验会更好。

这个选项,我每个场景都勾选了,不过依然会出现上面说的问题。整个应用的玩法比较简单,基本没用到动态加载,只有一个场景里面考虑到内存消耗问题,使用了动态加载,但也在组件的onDestroy中调用了cc.loader.release()。不过即使这样,内存也很难下降,还是那句话,iOS的GC真的很难很难触发~~~~

PS:有没有大大能回答我上面提到的声音缓存释放的问题啊????