Unity资源清理工具Asset-Cleaner

Unity Global Support部门制作了一些实用的小工具免费供大家使用,前面已经分享过了批量处理资源的Asset
Auditing
,今天继续为大家推荐用于批量清理资源的小工具:Asset
Cleaner。

Unity Global
Support部门主要负责对使用Unity引擎的企业级VIP客户提供技术支持,大中华区已实现全面覆盖,目前包括腾讯,网易,巨人,完美世界等公司已属于Unity的企业级VIP客户。
Asset Cleaner主要用于查找并删除没有被引用的资源,简单易用,且具有高度可扩展性。

项目背景

在Unity项目中,我们习惯将所有的资源统称为Asset。Asset一般存放在Assets目录及其子目录。随着项目的研发进度,Asset数量也会爆发式地增长,资源管理面临很大的挑战。如何查找并区分有效和无效的资源,是很多项目管理者非常重视的事情。本文介绍的这个工具可以自动分析查找项目中未使用到的资源,在选择删除的时候还可以将这些文件打包备份,确保资源的安全性、提高项目管理的效率。

实现原理

该工程只有四个CS文件,需存放在Editor目录下。

FindUnusedAssets是这个工具的主要入口,实现了编辑器的扩展菜单及其内部调用。

AssetCollector是总的工具类,用来收集所有的asset文件

ClassReferenceCollection用来收集所有的.cs脚本文件。

ShaderReferenceCollection用来收集所有的Shader文件。

AssetCollector

AssetCollector实现了这个工具的核心代码,点击菜单时会调用定义在它内部的Collection函数。AssetCollector中声明了两个变量,useCodeStrip和saveEditorExtensions。useCodeStrip用来控制要不要删除未使用的脚本文件,saveEditorExtensions用来控制检测资源是否被Editor脚本引用。工具中提供了三个菜单项,分别是only
resource、unused by editor、unused by
game。这三个菜单项执行的代码就是通过设置useCodeStrip和saveEditorExtensions为不同的值来控制过滤的方式。

资源搜集

Collection函数内实现了各种类型资源文件的搜索过滤。

Directory.GetFiles()获取“Asset”目录及其子目录下所有相关资源的名字,通过Linq语法进行过滤,获取需要的文件类型。

依赖关系获取

通过AssetDatabase.GetDependencies获取当前有效的场景文件及场景依赖文件。

使用介绍

首先我们要保证当前工程中存在有效的场景文件,因为Asset资源的有效性依赖于是否被场景引用。

使用时需要找到这个菜单项Assets->Delete Unused Assets,如下图所示。

Delete Unused Assets下有三个选项,分别是删除未使用的资源文件(only resource),删除编辑器未使用的Asset(unused
by editor)和删除游戏未使用的Asset(unused by game)。

使用方法

在开始使用该工具时,要保证有效的EditorBuildSettings.scenes

选择Delete Unused Assets下“only resource”选项,弹出对应的删除列表。如下图所示:

显示在删除列表中文件。单击“Delete”,列表中的文件从项目中移除,工具会把这些文件作为一个UnityPackage导出到“../
BackupUnusedAssets/”。这个包作为被删除文件的备份,如果后期发现有资源丢失,可以从这个包内找到对应的资源文件重新导入。

上面简单介绍了Asset Cleaner工程的工作原理及使用方式。在实战中,我们可以根据需求自定义查找文件的格式。

VR效果神器,Unity精品相机插件

今天向大家推荐几款强大易用的相机插件,可以用于录制高清VR游戏视频、实现各种炫酷的相机特效,甚至有便利实现移动VR环境的移动解决方案。

Helios

Helios是用于录制高清流畅视频的插件,不但支持普通的2D视频、3D视频,而且有适用于VR环境的全景视频,还可以同时录制音频。Helios利用特别设计的着色器来获取场景截图,并将这些图片转换为适用于各种3D及全景视频平台所需的视频格式。

目前Helios仅支持在Unity编辑器模式下使用。相比其它的全景视频解决方案,Helios功能更加完善,而且支持主流的VR头盔包括Oculus、Gear
VR、HTC Vive、Google
Cardboard。同时,全景视频平台如Facebook和YouTube。Helios可以直接导出6种不同质量的视频,最高支持90FPS的8K全景视频。当然,它还可以导出高清的GIF、JPEG或PNG图片。

使用Helios也非常简单,其中已经内置好了用于录制不同视频的预制件(Prefab),并包含所有必需的脚本,只需将这些预制件添加到场景中,再简单进行一些设置即可。以录制3D视频为例,只需将Helios3D预制件拖拽至场景,然后在检视面板中设置Helios脚本的参数,以选择视频类型、质量、特效及存储目录等。剩下的就等Helios自动完成即可。

下载地址:

https://www.assetstore.unity3d.com/en/#!/content/63643

Camera Transitions

Camera
Transitions可用来实现一系列的相机变换特效,适用于各种画面切换效果,包括缩放、盒式切换、渐变、闪现、翻转、翻页、折叠、抖动、线性模糊等等。Camera
Transitions几乎可以满足所有的全画面变换需求。

Camera Transitions需要硬件GPU支持Shader Model
3.0及以上版本,基本上只要是2009年以后面世的GPU就没有问题。有些效果在移动设备上可能消耗比较大,例如翻页。类似的注意事项都已标示在插件网页上,使用时可以作为参考。

使用Camera Transitions首先需要在场景中新建一个空GameObject,然后为其添加Camera Transitions脚本。Camera
Transitions脚本会对所有特效做全局设置,如自动或手动切换、更新频率、特效的范围等。

针对所有特效的使用代码,作者也给出了示例,只需调用一句代码即可。以圆圈扩散特效为例,只需调用DoTransition函数即可,其参数分别表示变换类型、原始相机、目标相机、变换时间以及一些可选的传入参数:

上面的代码可实现如下效果:

而除了代码调用外,还可以利用CameraAssistantTransitions组件直接在检视面板中进行设置,免去手动编写代码的步骤。

下载地址:

https://www.assetstore.unity3d.com/en/#!/content/36055

Mobile VR Movement Pack

Mobile VR Movement
Pack提供了5种移动VR环境下的移动方案示例,包括路径点系统、导航网格、摇杆控制、自动行走及视线控制(向下看行走,向上看停止)几种方式。每个都提供了示例场景,可以支持Gear
VR、Google VR、Cardboard及Daydream平台。

使用Mobile VR Movement Pack非常简单,插件提供了代表不同移动方式的预制件,只需将这些预制件拖拽至场景,然后删除场景中的其它相机即可。

插件还包括一系列用于实现各种不同效果的简明脚本。例如,添加了VR
WalkableSuface脚本的对象会被导航网格视为“可通过的”,以便找到正确的路径。VR Waypoint脚本则用来设置路径点。

下载地址:

https://www.assetstore.unity3d.com/en/#!/content/69041

Unity酷炫特效脚本插件

上周为大家介绍了Asset
Store中非常受欢迎的不同游戏类型的完整模板,今天则分享一些脚本插件,用来实现各类酷炫的特效,包括爆炸、闪电及天空盒等。

Exploder

看名字就知道了,Exploder就是用来在Unity中实现各种爆炸效果的脚本插件。它可以实时分解网格,在几毫秒内将任意对象分崩离析。由于是实时计算,所以不需要预定义游戏对象作为碎片,所有过程仅需调用一行代码即可瞬间完成。

该插件带有强大的网格切割器,会查找游戏对象上的网格将其切割为小碎片,在游戏对象上添加Rigidbody组件再设置好加速度即可实现爆炸效果。出于性能的考虑,这些小碎片会存放于预先分配的对象池中,以尽可能减少创建及初始化游戏对象的次数。

使用Exploder非常简单,正如之前所说,仅需一行代码即可完成。首先,将插件Prefabs目录下的Exploder预制件拖拽至层级视图。然后从检视面板中调整爆炸相关的参数,例如碎片的数量等等。这一步也可以使用代码完成。为需要爆炸的目标对象添加ExploderOption脚本。接下来只需在任意脚本中调用ExplodeObject函数即可。

Exploder还提供了FPS游戏示例场景,包含了FPS游戏的基本机制如瞄准、换武器及扔手榴弹等等。该插件同样支持移动平台,但建议针对不同机型使用不同的配置。

下载地址:

https://www.assetstore.unity3d.com/en/#!/content/9771

TENKOKU Dynamic Sky

TENKOKU Dynamic
Sky是用于实现高度精确天气系统的插件,可以按照24小时循环实时动态设置天空场景。支持动态调整大气属性,例如白天与夜晚的天空亮度、雾效距离、云层密度、灰蒙程度、降雨、降雪及彩虹等等,几乎所有天气相关的属性都可以直接进行设置。

TENKOKU Dynamic Sky提供了很方便的编辑面板,所以不需编写代码也能轻松使用该插件。首先将Prefabs目录下的Tenkoku
DynamicSky预制件拖拽至场景,放置于(0,0,0)的位置,然后在相机上添加特效脚本Tenkoku Fog等,还可以根据实际需求加入其它的特效脚本。

TENKOKU所有的核心代码都位于TenkokuModule脚本中,上述提到的各种天气属性也可以通过脚本进行修改。但请注意,该插件暂不支持移动平台。

下载地址:

https://www.assetstore.unity3d.com/en/#!/content/34435

Procedural Lightning (2D and 3D)

Procedural Lightning用来实现各种闪电特效,当然也可以生成游戏所需的普通线性特效。该插件比较简单,仅需一个Draw
Call即可完成所有的淡入淡出、生长及发光等效果。整个渲染在GPU上完成,相比CPU渲染效率更高,并且支持一些配置较低的移动设备。

使用该插件也非常简单,将插件核心脚本LightningBoltScript加入场景中的对象,设置好闪电及发光的材质,指定起始位置与结束位置,调整一些闪电属性,剩下的就交给Procedural
Lightning来完成。LightningBoltScript提供了非常多的属性设置,包括闪电路径数量等等都是可以预先设置的,调整这些参数让闪电达到理想的效果。

Procedural Lightning同时支持2D及3D,其中也提供了19种不同的示例,除了常见的2D闪电,还演示了立体闪电特效。

下载地址:

https://www.assetstore.unity3d.com/en/#!/content/34217

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×