您的位置:首页 > 其它

解决错误:OnAssignMaterial must return a persistent material (AssetDatabase.CreateAsset)

2016-08-13 18:25 1356 查看
项目中有需求对 AssetPostprocessor.OnAssignMaterialModel 进行自定义处理,代码如下
public Material OnAssignMaterialModel(Material mat,Renderer render)
{
if (mat.shader.name.Contains("Particles"))
{
mat.shader = Shader.Find("Mobile/Particles/Additive");
}

return mat;
}
转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn
但是发现有时候导入模型会报以下错误



OnAssignMaterial must return a persistent material (AssetDatabase.CreateAsset)
在Unity 官网寻得答案 http://answers.unity3d.com/questions/39976/what-to-return-from-onassignmaterialmodel.html 原来在Unity 文档中已经注明,如果函数没有进行任何处理,要返回 Null 。 http://docs.unity3d.com/ScriptReference/AssetPostprocessor.OnAssignMaterialModel.html


修改成如下,解决问题
public Material OnAssignMaterialModel(Material mat,Renderer render)
{

if (mat.shader.name.Contains("Particles"))
{
mat.shader = Shader.Find("Mobile/Particles/Additive");

return mat;
}
else
{
return null;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐