通过Assetbundle加装的场景或者物体会出现如下显示问题。
![](https://img.haomeiwen.com/i1239655/96e6386d10cd6e26.png)
只需简单的代码就可以修复。
[MenuItem("BabybusFrame/Utility/修复Shader")]
private static void 修复Shader()
{
var renderers = Resources.FindObjectsOfTypeAll<Renderer>();
if (renderers == null || renderers.Length == 0)
return;
foreach (var renderer in renderers)
{
if (AssetDatabase.GetAssetPath(renderer) != "")
continue;
foreach (var sharedMaterial in renderer.sharedMaterials)
{
if (sharedMaterial != null)
sharedMaterial.shader = Shader.Find(sharedMaterial.shader.name);
}
}
var graphics = Resources.FindObjectsOfTypeAll<Graphic>();
if (graphics == null || graphics.Length == 0)
return;
foreach (var graphic in graphics)
{
if (AssetDatabase.GetAssetPath(graphic) != "")
continue;
graphic.material.shader = Shader.Find(graphic.material.shader.name);
}
}
![](https://img.haomeiwen.com/i1239655/0bc7e326e1495a5c.png)
网友评论