Unity3D之如何将包大小减少到极致

Unity3D之如何将包大小减少到极致

转自:http://www.luzexi.com/unity3d之如何将包大小减少到极致/

Unity3D之如何将包大小减少到极致

Unity3D之如何将包大小减少到极致,图片是游戏app里最最占空间的资源,所以请各位还没有理解u3d对图片文件存储方式理解的请看《unity3d-texture图片空间和内存占用分析》。因为u3d对资源的压缩并不阐述的十分详细,所以很多项目在遇到包大小瓶颈时非常头疼。我也不是神仙,也同样痛苦过,但经历几个项目的折腾,最终能梳理出一套能将u3d包大小减少到合理范围的方法。

首先来展示下,官方如何说的:

http://docs.unity3d.com/Manual/ReducingFilesize.html 官方手册)

1.替换jpg,使用psd,减少重复资源

2.剔除不必要的资源

3.打包时查看log纪录,由此判断需要减少的文件类型

4.优化,压缩图片,减少图片大小

5.优化,压缩网格和动画,减少文件大小

6.剔除system.dll和system.xml.dll ,尽量不要依赖他们,或用其他组件来代替。

这个官方解释对我们帮助甚少。所以,我们还需要一样利器,www.LoadFromCacheOrDownload。我把包分成三段:1.首包(里面包含了最最必要的资源)。2.首次进入包加载(加载游戏运行必要的资源)。3.游戏运行中资源加载(按每个游戏不同各自定义,以场景和单位个体为主要,在画面进入时加载资源,加载结束后再运行并显示)。

关于u3d的AssetBundle资源加载与打包封装,请查看《unity3d之assetbundle资源加载封装》这篇文章。

重点来了,www.LoadFromCacheOrDownload在加载AssetBundle后会将其解压后的资源存储到本地文件夹中,这样虽然下载的包小,但解压后的包依旧很大。解决方法:首先将资源包打包中加密并命名为.bytes后缀,最后再加载是就不会被解压为资源存储再本地,因为它无法识别我们加密后的AssetBundle资源,再读取资源时需要使用AssetBundle.CreateFromMemory将,解码后的2进至数据变为我们可用的AssetBundle。

这个方法能灵活运用这如下方式:我将n个资源包加密后打包成n个2进至文件,再将这些加密文件再次打包成1个正常的AssetBundle文件,在使用www.LoadFromCacheOrDownload时从网络加载完成后,本地应用存储的就时n个我们加密后的2进至文件了,而并非被u3d解压后的正常的资源文件。这样做进一步缩小了本地资源的大小。

我经过实验计算了一下,一个不做任何压缩手段的有1G大小的u3d的app,压缩到极致,可以到150mb左右,而这个数字时整包大小。如果你做成我所说的三段加载,首包可以压到50mb以内,有些甚至30mb以内(不同游戏不一样,不同设计也不一样)。当然,这样做,整包可能会大一点,因为资源依赖被拆分了,所以资源重复还时避免不了的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/100439.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • visio2013找到密钥以后但是未激活状态「建议收藏」

    visio2013找到密钥以后但是未激活状态「建议收藏」转载:https://blog.csdn.net/TaoYuanKuangDao/article/details/78282999#reply网上找了密钥输入通过以后显示未激活,然后打开流程图只能看不能进行任何修改,找了很多资料找到了这篇很好用:正确的激活成功教程工具KMSpico_setup.exe下载地址: http://pan.baidu.com/s/1ntkM6V3 2.72MB安装后,从…

  • 常用meta整理

    常用meta整理

  • 毕业论文管理系统_本科毕业论文网

    毕业论文管理系统_本科毕业论文网毕业论文管理系统1.首先是个简约的登录页面,登录页面分为三个角色,分别是学生,老师和管理员系统的登录界面2.接下来是用户模块,分别为两个模块教师和学生的,管理员可以进行教师和学生添加和修改。3.系部管理4.文件管理,学生上传的论文,管理员和教师都可以进行下载和查看5.学生模块,学生选题,教师发布的题目学生可以进行选择。学生也可以自己申请题目6.学生申请课题7.论文初稿,学生上传论文初稿,等指导老师通过后才能进行最后的终稿8.学生上传论文,指导老师可以提建议,学生可以查看指导老师的建议9.

    2022年10月29日
  • 【QGIS入门实战精品教程】2.1:初识QGIS软件[通俗易懂]

    【QGIS入门实战精品教程】2.1:初识QGIS软件[通俗易懂]从今天开始,我们一起来学习一款免费开源、对机器要求低、功能强大的GIS软件:QGIS!一、QGIS简介QGIS(原称QuantumGIS)是一个自由软件的桌面GIS软件。它提供数据的显示、编辑和分析功能。QGIS是一个用户界面友好的桌面地理信息系统,可运行在Linux、Unix、MacOSX和Windows等平台之上。QGIS是基于Qt,使用C++开发的一个用户界面友好、跨平台的免费开源版桌面地理信息系统。二、QGIS软件的主要特点支持多种GIS数据文件格式。通过GDAL..

  • python判断文件是否存在、不存在则创建_python判断文件是否存在,不存在就创建一个的实例…「建议收藏」

    python判断文件是否存在、不存在则创建_python判断文件是否存在,不存在就创建一个的实例…「建议收藏」python判断文件是否存在,不存在就创建一个的实例如下所示:try:f=open(“D:/1.txt”,’r’)f.close()exceptIOError:f=open(“D:/1.txt”,’w’)以上这篇python判断文件是否存在,不存在就创建一个的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。时间:2019-02-17python中查找指定…

  • 详解舵机的基本原理以及控制方法「建议收藏」

    详解舵机的基本原理以及控制方法「建议收藏」文章目录什么是舵机?伺服控制硬件连接舵机规格SG90MG90SMG996R总结什么是舵机?舵机是伺服电机的一种,伺服电机就是带有反馈环节的电机,我们可以通过伺服电机进行精确的位置控制或者输出较高的扭矩;舵机也叫也叫RC伺服器,通常用于机器人项目,也可以在遥控汽车,飞机等航模中找到它们。类似舵机这样的伺服系统通常由小型电动机,电位计,嵌入式控制系统和变速箱组成。电机输出轴的位置由内部电位计不断采样测量,并与微控制器(例如STM32,Arduino)设置的目标位置进行比较;根据相应的偏差,控制

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号