- 打包设置中加上BuildAssetBundleOptions.DisableWriteTypeTree
可以试包体内容减少,加载速度减少,同时也减少了内存。
TypeTree是来存储unity版本信息的一个东西,在加上这个的前提是保证一直使用的统一版本unity打包。
- 打包完了ab,就不能修改c#层的挂在游戏物体上的脚本中的变量的访问权限
一个预制件在异步加载时不要使用同步加载
模型导入Model设置:Read/Write Enabled - 关闭
这个开关是控制我们在运行游戏是去改变模型的mesh数据同步到GPU内存中,并是否保存在GUP内存中,或者去读取mesh中的数据。在大多数情况下设置为false,除了以下情况设置为true:
- 使用了StaticBatchingUtility.Combine() 合并mesh的时候
- 使用Mesh去烘焙成NavMesh
- 使用了Mesh Collider并且transform拥有负数的大小(如:scale(-1,1,1))
- 使用了Mesh Collider并且对transform做了裁剪和扭曲
- 使用了Mesh Collider并且 Mesh Collider 的 Cooking 设置不是默认值
设置界面
这里使用一个2.4mb背景音乐做参数测试
-
Force To Mono : 强制把多声道文件设置为单声道,使用此选项可降低内存的的占用。(音质会受影响,打开后大小为0.6mb)
-
Load In Background: 后台加载,这里做了个测试:
- 以流的方式加载,打开选项,内存:202kb
- 以流的方式加载,关闭选项,内存:192kb
是不是意味着打开后台加载,会造成内存的多占用。
-
Ambisonic:3d环绕音响
-
Load Type : 记载方式(测试在开启Force To Mono)
-
Streaming: 流的方式加载,内存占用少(200kb),Streaming CPU占用大,适用于大于200kb的文件。
-
Decompress On Load: 加载时就解压,内存占用极大(6.5mb),CPU占用极小
-
Compress In Memory:在内存中解压,内存占用大(0.6mb),DSP CPU占用大,加载速度极快
-
Preload Audio Data:在场景加载时就加载音效
- 这里有个问题:是打开了这个,是否是在加载任何场景都会加载该音效?还是只加载场景中用到的打了这个音效的资源,但是如果加载场景,场景会自动加载场景中所有资源,难道是提前一些?
- 测试打开,不会再任何场景加载时加载打开的音效
-
Compression Format: 压缩方式
- PCM:无损
- Vorbis:压缩为ogg,压缩最小,一般用这个。
- ADPCM:稍微压缩,是pcm压缩率的3.5倍。