场景资源统计工具改自工具
https://github.com/handcircus/Unity-Resource-Checker
修改:
1、材质大于50个时不显示预览,不然会卡死
2、增加预制体统计功能
取预制体有两种方法:
2.1 用UnityEngine.SceneManagement.SceneManager.GetActiveScene().path取当前场景的文件路径;然后用AssetDatabase.GetDependencies(scenePath)取所有依赖资源文件路径;最后把.prefab后缀的挑出来。
2.2 用(GameObject[])FindObjectsOfType(typeof(GameObject))取所有GameObject;如果PrefabUtility.GetPrefabType(go) == PrefabType.PrefabInstance成立,则go为预制体,并且可以用PrefabUtility.GetPrefabParent(go)取出预制体对应的资源文件的位置。值得注意的是,一个预制体子节点的go也会被取出来,而且PrefabUtility.GetPrefabParent(go)会得到对应.pefab文件的子节点,所以需要增加一个排查,例如go的父节点也是预制体并且用AssetDatabase.GetAssetPath得到的预制体路径是一样的,那么go就不记入了。
我用的是第2种。
3、增加了排序
预制体用的是SortList,按照美术需求把需要排序的东西拼成字符串作为key
其他的记录沿用List,每一个对象用了XXXDetails记录,在Details里加了CompareTo函数,根据美术需求判断大小,生成资源List后用List.Sort((x, y) => x.CompareTo(y));排序