UEDL11-3——其他内容

本章代码关键字

1
2
​EditorUtility.CompressTexture​()            //可以将纹理显式压缩为指定的格式,配合之后的资源导入相关使用
EditorUtility.CollectDependencies() //返回对象所依赖的所有资源列表

压缩纹理

EditorUtility.CompressTexture()​可以将纹理显式压缩为指定的格式,该知识点会配合之后的资源导入相关知识点使用

例如在资源导入后压缩它的纹理:

1
2
3
4
5
6
7
8
9
10
public class Lesson47 : AssetPostprocessor
{
//资源导入后会自动执行的后处理方法
private void OnPostprocessTexture(Texture2D texture)
{
Debug.Log("纹理后处理回调" + texture.name);
//对纹理进行压缩为ETC_RGB4,且压缩质量选择快速
EditorUtility.CompressTexture(texture, TextureFormat.ETC_RGB4, TextureCompressionQuality.Fast);
}
}

执行结果:image

查找资源依赖项

EditorUtility.CollectDependencies()​,返回对象所依赖的所有资源列表

  • 参数:要查找资源依赖项的资源数组(Object[]​)
  • 返回值:传入的资源依赖的所有资源数组(Object[]​)

假设让一个材质球上依附一个贴图,再让一个游戏对象使用该材质球,将该游戏对象传入到方法内查找依赖项,
通过Selection.objects​来选中所有的依赖项资源

image

image

1
2
3
4
5
6
7
8
9
10
11
private GameObject objTest1;

private void OnGUI()
{
objTest1 = EditorGUILayout.ObjectField("想要查找的关联资源的对象", objTest1, typeof
if (GUILayout.Button("检索依赖资源"))
{
Object[] objs = EditorUtility.CollectDependencies(new Object[] { objTest1 });
Selection.objects = objs;
}
}

显示效果:image