文章目录
如何解决Unity资源占用C盘空间与Unity创建新项目时文件过大的问题
1.Unity商店资源管理
背景
使用Unity的小伙伴学习时一般都会去Unity自带的Asset Store中下载游戏资源,但随着对unity的开发不断深入,我们会发现C盘的空间日益减少,逐渐开始影响电脑的性能,接下来让我们一起开始优化它,释放其对C盘空间的损耗。
注:Unity商店中下载的资源默认保存在C盘
默认保存路径
Unity
我们打开Unity后,从Unity Asset Store添加至我的资源的文件可以在如图位置中查找
上方 Packages:My Assets 是从商城中添加到我的资源的文件存放位置,用到时只需点击右侧的Download,再选择你需要的资源项点击Import导入即可,但在这里无法卸载已下载的商店资源包,需要在下方存放在电脑中的位置进行删除卸载。
电脑
下载后它们通常会被电脑存放在以下默认路径:
C:\Users\用户名\AppData\Roaming\Unity\Asset Store
C:\Users\用户名\AppData\Roaming\Unity\Asset Store-5.x
注:用户名为你电脑的本地用户名,AppData文件是隐藏文件,需要手动设置以显示隐藏文件,不同版本的Windows显示隐藏文件的方式不同,如图为其中一种方法,C:\Users\用户名中下滑界面找到即可找到AppData。
C:\Users\用户名\AppData里面一般有三个文件夹,分别是Local,LocalLow,Roaming,简单地来说,都是用来存放软件的配置文件和临时文件的,里面有很多以软件名称或软件公司命名的文件夹,理论上都可以删除。但是尽量不要删除,这里边存放的是软件运行时和结束后的数据和配置文件,如果删了,会导致软件不正常或者出错
解决方案
1.移动资源位置
首先,创建一个更适合存储资源的文件夹,然后,将原来默认路径下的资源剪切并粘贴到新的文件夹中。例如 E:\Unity\Asset Store-5.x。
注:保存到新文件夹后一定要注意删除原文件
2.创建软链接
如果你只是删除这个文件夹,一会Unity程序会自动创建这个文件夹
使用文件系统的软链接解决这个问题,使Unity可以在新的位置中找到资源
mklink命令是Windows操作系统中用于创建软链接(也称为符号链接)的工具。软链接是一种特殊类型的文件,它指向另一个文件或目录,类似于Windows中的快捷方式,但在文件系统层面工作。通过mklink命令,用户可以创建指向任意位置(包括不同磁盘或分区)的文件或目录的软链接,从而实现快速访问和统一管理。
按住:win + R键,输出cmd,回车,输入如下命令创建软链接
mklink /j "原来路径" "修改后的新路径"
mklink /j "C:\Users\lenovo\AppData\Roaming\Unity\Asset Store-5.x" "E:\Unity\Asset Store-5.x"
注:这里将lenovo改为你的本地用户名
2.Unity缓存资源管理
官方手册:
Global Cache-全局缓存 – 链接
GI Cache - GI缓存 – 链接
缓存定义
GI Cache
GI Cache是 Unity 编辑器在预计算烘焙全局照明和 Enlighten 实时全局照明的光照数据时用于存储中间文件的内部数据缓存。通过将这些数据存储在缓存中,Unity 可以加快后续预计算的速度。计算机上的所有 Unity 项目共享缓存,以便具有相似内容和相同光照贴图后端的项目可以使用相同的缓存文件。您可以使用GI 缓存首选项管理缓存的大小、位置和压缩。
Global Cache
Unity Package Manager 在下载包内容和元数据时,会将它们存储在全局缓存中。这样可以更有效地重复使用和共享包,甚至在脱机时也可以安装和更新存储的包。
修改Unity的缓存位置
Unity GICache
打开Unity的编辑器,找到Editor——>Preferences——>GI Cache,修改内部数据缓存位置。
找到Cache Folder Location 打上 √ 后根据自己的需要,单击 Browse 按钮可指定缓存的位置。GI Cache的默认缓存位置是C盘的C:\Users\你的用户名\AppData\LocalLow\Unity\Caches,AppData文件是隐藏文件,需要手动设置显示隐藏文件。
Unity Cache
1.Unity Cache即全局缓存,默认在C盘的C:\Users\Username\AppData\Local\Unity\cache 中缓存了npm和packages
子缓存用途
npm:存储使用npm协议从注册表获得的数据。这包括元数据和包 tarball。
packages:此缓存包含从注册表获取的包 tarball 的未压缩内容。
2.找到并选择此电脑——>属性——>高级系统设置——>环境变量
3.修改Unity的全局缓存位置: 自定义共享缓存位置,可以使用两个环境变量来覆盖任一全局缓存文件夹 ,即在系统变量中新建2个环境变量,具体如下
变量名1:UPM_CACHE_PATH
变量值1:新的缓存文件夹地址 (packages)
变量名2:UPM_NPM_CACHE_PATH
变量值2:新的缓存文件夹地址 (npm)
4.重启电脑。
5.打开UnityHub和Unity项目,然后查看新的缓存目录里是否缓存了东西,如果有就可以将默认缓存文件夹删除。如果没有,就重复上述操作。
注:新建环境变量后,注意将窗口全部点击确定进行保存
3.新建空项目资源管理
减少unity资源包主要分为两步:
1.构建空项目(新建文件时):减少初始资源的加载
2.项目完成后(打包发布时):对资源包进行优化
本文主要目的是解决第一点,创建项目时的资源优化问题,后续会在博客中补充第二点
Unity官方手册:Package Manager – 链接
注:如果官方手册语言选择中文后还有英文,使用网页继续翻译即可(需上网)
背景
随着unity版本的升级,我们在unity中创建的项目日益增多,导入的资源也不断叠加,当你再次创建一个新项目时,是否会发现文件大小达到了惊人的1.6G甚至更多,接下来让我们一起来解决这个令人头疼的问题吧
解决方案
要移除某个已安装的包,请执行以下操作:
1.打开 Package Manager 窗口,然后从 Packages 下拉菜单中选择 In Project。
2.从软件包列表中选择要删除的软件包,按下Remove,详细信息视图现在显示该软件包的信息。
3.点击删除按钮。如果此按钮:
- 未显示,您可能正在查看“我的资产”列表。
- 已禁用,您无法删除此包,说明该包判定为锁定和不可移除的包。
以Brust为例,点击该软件包中的 Dependencies(依赖关系),具体如下:
Is using:该包是否依赖于另一个包,以及依赖哪个版本(如果是)。安装的包会在版本号之后显示依赖关系的状态。
Used by:是否有另一个包依赖于该包,以及依赖哪个版本(如果是)。
4.找到依赖关系后,将 Used by :2D 删除,即 2D 8 packages,注意该操作主要解决新建项目时资源管理,如果你的项目中用到该 2D 资源包,则需要考虑选择可删除的无用资源包或删除这个系列的资源包,添加单个2D资源。删除2D 8 packages后以它们为依赖的相关资源即自动移除。
5.如果您想要恢复已删除的包,如图所示在右上角进行搜索,再点击 Install 安装即可。
6.同时我们也可以在项目文件夹保存的位置中查看,如我的项目叫X,找到项目路径后,选择X——>Library——>PackageCache就可以看到该项目在Unity上已下载的内置资源包,注意移除这里面的资源包时,最好按照上述方法进行,如果直接在文件里进行删除,可能会出现下次加载时重新导入资源或内部集成资源发生缺失导致Unity发生报错进入安全模式等
建议
该建议适用于一些刚进行游戏开发的或做独游的新手:为了避免游戏开发项目中存在一些完全用不到的资源包,我们在新建项目时应只保留最基本的资源,控制初始文件大小为几十MB左右,然后随着项目的进行再逐步添加资源,这样项目结束时可以知道你的游戏资源基本都是有用的,这里还有个方法是创建自定义包,感兴趣的小伙伴可以去了解一下。
具体情况如下:经过删除,只保留了两个包,一个是UI的包,另外一个是VS编辑器的包。
文章到这里就结束了,感谢各位小伙伴们观看到这里,希望我的分享可以给你们带来帮助,这将是我不断创作的巨大动力!
推荐视频:修改Unity Cache和Unity Asset Store的默认路径 链接
推荐手册:Package Manager - 软件包管理器 - Unity 手册 链接
Global Cache - 全局缓存 - Unity 手册 链接
GI Cache - GI缓存 - Unity 手册 – 链接
创建自定义包 - Unity 手册 链接