游戏内存优化和包体压缩事项_unity 手游 包体 优化-程序员宅基地

技术标签: Unity3d  资源优化  

最近一个星期在解决游戏中包体过大问题,我想分享一下自己的一些经验,由于刚接触这类问题,一些有误或者不完善之处请小伙伴们给我意见,加入一起探讨和学习。来自菜鸟的仰视

这期我们只讨论资源大小优化,对于游戏运行中GPU.CPU优化将在下期继续探讨。

 

优化步骤

打包后包体大小和资源占有可以在日志Log里面看,具体查看

日志目录一般在:C:\Users\Administrator\AppData\Local\Unity\Editor !恩,没找到,那你可以这样,首先打开unity日志一栏,

点击打开Open Editor Log。

unity3d打包的所有文件是会被记录而且被排序的。所以这大大方便了我们分析为何打包文件如此之大,以及怎么减少打包文件。

  

打开log文件,可以看到打包文件的统计信息:(找不到这个内容可以 查找build re)

Textures      176.1 mb     70.1%
Meshes        7.7 mb     3.0%
Animations    14.1 mb     5.6%
Sounds        12.4 mb     4.9%
Shaders       1.3 mb     0.5%
Other Assets  20.6 mb     8.2%
Levels        3.6 mb     1.4%
Scripts       2.8 mb     1.1%
Included DLLs 6.6 mb     2.6%
File headers  6.0 mb     2.4%
Complete size 251.1 mb     100.0% 

基本上贴图上是站最多的,那我们就一项一项的分析进行优化。

1、Textures 图片开始时候让美术尽量输出成2的次方图,如果不能后期可以改下。不过最好是程序和美术达成一致条件。unity 打包后有自动压缩功能,但是只是对2的次方图进行压缩,虽然现在图集也可以进行压缩,但是压缩效果不是很明显。接下来我们来看下具体比较。

2的次方

 美术输出图 为1080*1920 简直完美,但是这不是我们程序追求,这TM还不得炸。

 那再来看下2的次方     

虽然图改成了1024*1024,但是真机演示效果还是一样,并没有模糊。但是内存少了1M,降下来进行压缩

选择安卓提供的压缩方案,可以根据情况进行压缩比例,这里选择是压一半,瞬间从2M到118KB。

所以图片尽量为2的次方输出,选择安卓自动压缩机制后,内存将得到全新释放

打包图集后内存更小

2、对于音乐和字体,如果没做任何处理unity都似乎按照实际大小出包,不会压缩做处理之类。

对于音乐,格式工厂这类型就行

字体话,一般逻辑是剔除常用与不常用字体。尤其是中文,几万个字体,字体包占10M话,不常用或者是里面带表情复杂字符话基本占到10M左右,所以我们需要做的是处理掉不常用字体。具体怎剔除给大家推荐一篇文章。https://www.cnblogs.com/yaukey/p/compare_fontsubsetgui_fontpruner_for_unity.html

未完待续......

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/liu18255603500/article/details/81258783

智能推荐

linux使用入门教程_linux教程入门教程-程序员宅基地

文章浏览阅读4.5k次,点赞9次,收藏95次。说实话在第一次接触Linux系统时,确实很不习惯,尤其是在用了多年的Windows后,可是项目需要又不得不顶着头皮去学习了,下面就自己一点点摸索做下总结,以供后面学习。1、安装Linux系统由于Linux的开源性,我们可以有很多选择,常见的有Ubuntu,centos,Fedora, Debian ,RedhatEnterpriseLinux ,SUSE OpenSUSE,Mindriva, Gentoo, Arch , Slackware等等这些主流发行版几乎占据了大多份额。这里我选择的是Ubun_linux教程入门教程

POJ2299 Ultra-QuickSort(树状数组+离散化)-程序员宅基地

文章浏览阅读184次。POJ2299 Ultra-QuickSort(树状数组+离散化)_poj2299

牛顿插值算法-程序员宅基地

文章浏览阅读637次。###差商定义称 **f [ x0 , xk ] = ( f ( xk ) - f ( x0 ) ) / ( xk - x0 )为函数f(x)关于点x0,xk**的一阶差商(或者均差)######0阶差商f[x0] = f(x0)f[x1] = f(x1)…f[xk] = f(xk)######二阶差商f [x0 , x1 , x2] = ( f [ x1 , x2 ] - f [ x0 , x1 ] ) / (x2 - x0)######K阶差商f [x0 , x1 , …, x

windows在当前目录打开c.m.d(控制台)_当前目录启动控制台-程序员宅基地

文章浏览阅读834次。1.进入任意一个文件夹2.看上方目录3.在这里输入cmd,并回车_当前目录启动控制台

kernel(十一)I2C_i2c kernel-程序员宅基地

文章浏览阅读878次。S5PV210 自带 3 个 I2C 模块, TQ210 使用的是 I2C0,挂接的是 AT24C02。三星提供了 I2C 的总线驱动: drivers/i2c/busses/i2c-s3c2410.c支持多种处理器,包括 s5pv210(和 s3c2440 兼容),同理,三星公用的 I2C 平台设备定义在arch/arm/plat-samsung/devs.c默认为 s3..._i2c kernel

Android开发之百度地图显示当前定位_android 百度地图以当前位置中心显示地图-程序员宅基地

文章浏览阅读2.7k次。根据百度开发文档实现了简单地图显示功能,本篇文章增加了显示当前定位的功能。_android 百度地图以当前位置中心显示地图

随便推点

weblogic10.3.1.0安装(windows版)_weblogic10.3.1安装-程序员宅基地

文章浏览阅读2.4k次。1.下载安装包https://www.oracle.com/technetwork/cn/middleware/weblogic/downloads/wls-main-091116-zhs.html2.如下安装包,点击安装3.点击下一步,进入以下界面,选择新建中间件主目录,安装目录为D:\softpath\weblogic10.3.1.0,选择下一步4.注册,不选中复选..._weblogic10.3.1安装

C#操作SVG矢量图-nuget库svg_.net svg-程序员宅基地

文章浏览阅读3k次,点赞4次,收藏12次。使用C#库对矢量图进行操作实践。_.net svg

使用Navicat远程连接服务器上的mysql数据库_navicat连接服务器上的mysql-程序员宅基地

文章浏览阅读1.5k次。环境准备服务器中安装mysql数据库本地安装Navicat Premium准备好服务器的ip地址、服务器登录密码、mysql数据库的密码等服务器中mysql忘记密码解决方法修改服务器中MySQL的登录设置,通过命令vim /etc/my.cnf,在[mysqld]的段中加上一句:skip-grant-tables,例如:[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock skip-grant-tables_navicat连接服务器上的mysql

爱淘宝手机版分类导航菜单弹出效果设计-程序员宅基地

文章浏览阅读249次。来和大家一起讨论讨论爱淘宝手机版的分类导航菜单弹出效果是如何设计实现的。先来看几个截图,一个是爱淘宝官方网站的截图,另一部分是我仿照爱淘宝做的截图先声明一下我们只是借鉴爱淘宝手机版界面来进行技术的学习,如有博友看到请各位一定要理解。此博客毫无盗用淘宝核心技术。第一张图是爱淘宝官网的截图,后面两张是我们自己仿照做的截图。首先分析一下要实现的功能细节点击手机页面商品列..._淘宝分类菜单右弹出css怎么实现的

Java中使用mysqldump实现mysql数据库备份并将sql文件打成zip压缩包_java 对sql文件压缩-程序员宅基地

文章浏览阅读3.3k次,点赞4次,收藏9次。场景在Java代码中调用mysqldump命令实现对指定的mysql数据库和指定的表导出为sql文件。并将sql文件进行压缩成zip存储备份。mysqldump 简介mysqldump 是 MySQL 自带的逻辑备份工具。它的备份原理是通过协议连接到 MySQL 数据库,将需要备份的数据查询出来,将查询出的数据转换成对应的insert 语句,当我们需要还原这些数据时,只要执行这些 insert 语句,即可将对应的数据还原。要想使用我们需要找到mysql安装目录下的bin下的mysql_java 对sql文件压缩

Linux服务器远程连接只允许密钥文件-程序员宅基地

文章浏览阅读246次。Linux服务器远程连接只允许密钥文件1、点击Xshell菜单栏的工具,选择新建用户密钥生成向导,进行密钥对生成操作。image.pngimage.pngimage.pngimage.pngimage.png2.这个时候,你已经有了一对密钥,需要开始设定服务器的配置,启用密钥认证登录,同时为了系统安全着想,关闭密码认证的方式![root@w..._linux的ssh不允许密码远程登录,但是允许密钥