Q: Material并没有对应的Importer,也没有预制件所对应的PrefabUtility.CreatePrefab创建函数,所以,即使是用AssetImporter导进来,也无法修改并调用SaveAndReimport去保存。
A: 所有的对象都可以通过AssetDatabase.CreateAsset(Object, path)进行创建,材质球的话:Material matAsset = new Material(Shader.Find("Standard")); AssetDatabase.CreateAsset(matAsset, "Assets/Temp");
Q: 如何编辑?
A:因为没有对应的Importer,所以只能通过AssetDatabase.LoadAssetAtPath<Material>()加载,而AssetDatabase对应的保存函数是SaveAssets()。注意,SaveAssets只会保存未保存的部分,所以要先调用EditorUtility.SetDirty(matAsset)
Q: 材质球黑色的,点一下就显示正常了?
A: 通过对比点击前后的.mat文件对比,发现是有一部分设置没有配置,我出现的是“RenderType: Opaque”没有赋值,把缺失的部分补一下就好了,像这个问题需要这样设置matAsset.SetOverrideTag("RenderType", "Opaque");