资源简介
在Unity项目中,我们习惯将所有的资源统称为Asset。Asset一般存放在Assets目录及其子目录。随着项目的研发进度,Asset数量也会爆发式地增长,资源管理面临很大的挑战。如何查找并区分有效和无效的资源,是很多项目管理者非常重视的事情。本文介绍的这个工具可以自动分析查找项目中未使用到的资源,在选择删除的时候还可以将这些文件打包备份,确保资源的安全性、提高项目管理的效率。
代码片段和文件信息
/**
asset cleaner
Copyright (c) 2015 Tatsuhiko Yamamura
This software is released under the MIT License.
http://opensource.org/licenses/mit-license.php
*/
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEditor;
using System.IO;
using System.Text.Regularexpressions;
namespace AssetClean
{
public class AssetCollector
{
public List deleteFileList = new List ();
ClassReferenceCollection classCollection = new ClassReferenceCollection ();
ShaderReferenceCollection shaderCollection = new ShaderReferenceCollection ();
public bool useCodeStrip = true;
public bool saveEditorExtensions = true;
public void Collection ()
{
try {
deleteFileList.Clear ();
if( useCodeStrip ){
classCollection.Collection ();
}
shaderCollection.Collection ();
// Find assets
var files = Directory.GetFiles (“Assets“ “*.*“ SearchOption.AllDirectories)
.Where (item => Path.GetExtension (item) != “.meta“)
.Where (item => Path.GetExtension (item) != “.js“)
.Where (item => Path.GetExtension (item) != “.dll“)
.Where (item => Regex.IsMatch (item “[\\/\\\\]Gizmos[\\/\\\\]“) == false)
.Where (item => Regex.IsMatch (item “[\\/\\\\]Plugins[\\/\\\\]Android[\\/\\\\]“) == false)
.Where (item => Regex.IsMatch (item “[\\/\\\\]Plugins[\\/\\\\]iOS[\\/\\\\]“) == false)
.Where (item => Regex.IsMatch (item “[\\/\\\\]Resources[\\/\\\\]“) == false);
if( useCodeStrip == false ){
files = files.Where( item => Path.GetExtension(item) != “.cs“);
}
foreach (var path in files) {
var guid = AssetDatabase.AssetPathToGUID (path);
deleteFileList.Add (guid);
}
EditorUtility.DisplayProgressBar (“checking“ “collection all files“ 0.2f);
UnregistReferenceFromResources();
EditorUtility.DisplayProgressBar (“checking“ “check reference from resources“ 0.4f);
UnregistReferenceFromScenes();
EditorUtility.DisplayProgressBar (“checking“ “check reference from scenes“ 0.6f);
if( saveEditorExtensions ){
UnregistEditorCodes();
}
} finally {
EditorUtility.ClearProgressBar ();
}
}
void UnregistReferenceFromResources()
{
var resourcesFiles = Directory.GetFiles (“Assets“ “*.*“ SearchOption.AllDirectories)
.Where (item => Regex.IsMatch (item “[\\/\\\\]Resources[\\/\\\\]“) == true)
.Where (item => Path.GetExtension (item) != “.meta“)
.ToArray ();
foreach (var path in AssetDatabase.GetDependencies (resourcesFiles)) {
UnregistFromDelteList (AssetDatabase.AssetPathToGUID(path));
}
}
void UnregistReferenceFromScenes()
{
// Exclude objects that reference from scenes.
var scenes = EditorBuildSettings.scenes
.Where (item => item.enabled == true)
.Select (item => item.path)
.ToArray ();
foreach (var path in AssetDatabase.GetDependencies (scenes)) {
if( saveEditorExtensions == false ){
Debug.Log(path);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
....... 263 2015-07-26 22:42 Tool-UnityAssetCleaner-master\.gitignore
....... 5013 2015-07-26 22:42 Tool-UnityAssetCleaner-master\Assets\Cleaner\Editor\AssetCollector.cs
....... 262 2015-07-26 22:42 Tool-UnityAssetCleaner-master\Assets\Cleaner\Editor\AssetCollector.cs.me
....... 6320 2015-07-26 22:42 Tool-UnityAssetCleaner-master\Assets\Cleaner\Editor\ClassReferenceCollection.cs
....... 262 2015-07-26 22:42 Tool-UnityAssetCleaner-master\Assets\Cleaner\Editor\ClassReferenceCollection.cs.me
....... 4751 2015-07-26 22:42 Tool-UnityAssetCleaner-master\Assets\Cleaner\Editor\FindUnusedAssets.cs
....... 262 2015-07-26 22:42 Tool-UnityAssetCleaner-master\Assets\Cleaner\Editor\FindUnusedAssets.cs.me
....... 2307 2015-07-26 22:42 Tool-UnityAssetCleaner-master\Assets\Cleaner\Editor\ShaderReferenceCollection.cs
....... 262 2015-07-26 22:42 Tool-UnityAssetCleaner-master\Assets\Cleaner\Editor\ShaderReferenceCollection.cs.me
....... 192 2015-07-26 22:42 Tool-UnityAssetCleaner-master\Assets\Cleaner\Editor.me
....... 192 2015-07-26 22:42 Tool-UnityAssetCleaner-master\Assets\Cleaner.me
....... 1086 2015-07-26 22:42 Tool-UnityAssetCleaner-master\LICENSE
....... 4136 2015-07-26 22:42 Tool-UnityAssetCleaner-master\ProjectSettings\AudioManager.asset
....... 4276 2015-07-26 22:42 Tool-UnityAssetCleaner-master\ProjectSettings\DynamicsManager.asset
....... 4104 2015-07-26 22:42 Tool-UnityAssetCleaner-master\ProjectSettings\EditorBuildSettings.asset
....... 4188 2015-07-26 22:42 Tool-UnityAssetCleaner-master\ProjectSettings\EditorSettings.asset
....... 4228 2015-07-26 22:42 Tool-UnityAssetCleaner-master\ProjectSettings\GraphicsSettings.asset
....... 5520 2015-07-26 22:42 Tool-UnityAssetCleaner-master\ProjectSettings\InputManager.asset
....... 4384 2015-07-26 22:42 Tool-UnityAssetCleaner-master\ProjectSettings\NavMeshAreas.asset
....... 4112 2015-07-26 22:42 Tool-UnityAssetCleaner-master\ProjectSettings\NetworkManager.asset
....... 4308 2015-07-26 22:42 Tool-UnityAssetCleaner-master\ProjectSettings\Physics2DSettings.asset
....... 35901 2015-07-26 22:42 Tool-UnityAssetCleaner-master\ProjectSettings\ProjectSettings.asset
....... 52 2015-07-26 22:42 Tool-UnityAssetCleaner-master\ProjectSettings\ProjectVersion.txt
....... 4944 2015-07-26 22:42 Tool-UnityAssetCleaner-master\ProjectSettings\QualitySettings.asset
....... 4236 2015-07-26 22:42 Tool-UnityAssetCleaner-master\ProjectSettings\TagManager.asset
....... 4112 2015-07-26 22:42 Tool-UnityAssetCleaner-master\ProjectSettings\TimeManager.asset
....... 20 2015-07-26 22:42 Tool-UnityAssetCleaner-master\README.md
目录 0 2015-07-26 22:42 Tool-UnityAssetCleaner-master\Assets\Cleaner\Editor
目录 0 2015-07-26 22:42 Tool-UnityAssetCleaner-master\Assets\Cleaner
目录 0 2015-07-26 22:42 Tool-UnityAssetCleaner-master\Assets
............此处省略5个文件信息
- 上一篇:清华规划院ai规划分析图小教程
- 下一篇:IT项目管理模板全
相关资源
- Unity3D/2D游戏开发从0到1
- unity-3D俄罗斯方块JS版
- Unity3D Ray射线
- Unity 自带shader 源码
- unity 粒子特效 雨、光照、光柱、聚光
- 绘制unity中物体运动的轨迹
- UnitySoftMask.zip287786
- UnityExcel(net3.5or4.x).rar
- OpenCVForUnity,Unity插件
- 自己触屏插件,支持window7多点触屏,
- unity的Microphone录音
- 自己封装Unity AB打包、加载插件
- Unity3D Living Particles
- 大量Unity场景资源
- 如何在unity 3d中处理按钮点击事件
- Unity数据存储插件
-
Pla
yerPrefs可视化工具 - dotnet-Unity的AssetBundle模块差异化打包工
- unity图像线条识别
- Unity移动端的复制要这么写
- NatCorder1.5.unitypackage
- DOTween Pro
- 一套完整的UnityUI框架、可用于实际开
- vuforia-unity-5-5-9.unitypacka
- 《Unity5.x从入门到精通》配套光盘资源
- Unity3D资源超级大合集
- unity 圆角shader
- Il2CppDumper_v4.5.8.2.zip
- UnityDownloadAssistant-2018.2.12f1
- Unity 代码混淆加密 Obfuscator_v3.5.3 支持
评论
共有 条评论