当前位置: 首页 > article >正文

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包,有可能小一点,还有可能变大,变大也是在几十个字节内变化,意义不大。因此,我觉得预制体上的浮点数不会影响打出来的包体大小,除非有特殊规范,否则不用管。


http://www.kler.cn/a/564277.html

相关文章:

  • Spring MVC 程序开发(1)
  • Hadoop架构详解
  • 释放 Cursor 的全部潜能:快速生成智能 Cursor Rules
  • 16.6 LangChain LCEL 实战指南:从零构建生产级大模型应用
  • 手持云台32位单片机主控芯片
  • 反制无人机详细全面介绍
  • 【前端】XML,XPATH,与HTML的关系
  • Python实现GO鹅优化算法优化Catboost回归模型项目实战
  • 【北大Deepseck】最新2份pdf(附不限速链接) 系列-提示词工程和落地场景 DeepSeek与AIGC应用
  • 【3D格式转换SDK】HOOPS Exchange技术概览(一):3D 数据处理高效能与定制化
  • 自然语言处理NLP深探
  • HDFS分布式文件系统
  • 面试之《网络请求的资源如何强制不缓存》
  • Spring Boot 3.x 系列【3】Spring Initializr快速创建Spring Boot项目
  • C++11智能指针
  • Idea 中 Project Structure简介
  • 排序算法学习笔记
  • 笔记一:字符函数和字符串函数
  • 小白向-用python实现选择排序
  • 想知道两轮差速方形底盘 URDF 咋做,ROS2 配 Rviz 咋显示吗?看这里!