Unity探究预制体浮点数对Unity资源大小的影响

以下内容是根据Unity 2020.1.0f1版本进行编写的

在这里插入图片描述
一直以来,我都有一个疑问,对于浮点数,特别是很长的浮点数,例如在Unity的预制中偶尔会出现的很接近0的小数,或者xxx.999或xxx.001(如图),这些接近整数的小数,在较少情况下是有用的,但实际上很多时候都是没用的。如果这些浮点数过多,会不会影响打包后的包体大小?

现在就来试验一下,先新建一个工程,准备一堆有上述问题的预制,并把打包脚本写好(只需要打包成AssetBundle就行,这里不赘述)
在这里插入图片描述
在这里插入图片描述
先手动搞一个包含小数点的空节点,接着准备一些预制,每个预制复制此空节点,以复制数量命名,例如_1就是只有一个浮点数空节点,_50就是有50个浮点数空节点。
接着将预制打包一遍,得到AssetBundle,这里我分别用两种不同的打包策略来打包,一种是每个预制打一个包,一种是全部预制打一个包,用以后续作对比。
在这里插入图片描述
在这里插入图片描述
上图就是两种方式打包后的AssetBundle

接下来将浮点数去掉,再打一次包
在这里插入图片描述
在这里插入图片描述
发现没什么变化,看了一下是一开始打AB包时用了ChunkBasedCompression压缩,然后将其改为UncompressedAssetBundle又试了一次(上面的截图都是未压缩的),发现还是一样没变,怀疑是Unity打包时,就是不压缩也有做优化。

于是问了一下百度最新AI:
在这里插入图片描述
这里考虑是因为存在连续相同的浮点数,毕竟浮点数的空节点都是复制的。因此加个脚本,把所有预制的position都改成随机小数。
在这里插入图片描述
在这里插入图片描述
发现还是没变,估计是有可能打包去掉了部分精度,因此变化不大。

最后说下结论,后续我又在公司项目中试了一下,经过试验,预制是小了,但是小了几个字节意义不大,而且系统存储文件和簇的大小有关,几十个字节的变化不会改变文件的占用空间。并且打出来的AssetBundle包,有可能小一点,还有可能变大,变大也是在几十个字节内变化,意义不大。因此,我觉得预制体上的浮点数不会影响打出来的包体大小,除非有特殊规范,否则不用管。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值