Hello everyone,
I have a huge amount of materials in my project. I want to generate a transparent version of each of those materials via an editor script.
// Other function that calls _MatToPreviewMat for each Material I need a transparent version of and saves an asset of it.
internal Material _MatToPreviewMat(Material mat) {
var previewMat = new Material(mat);
previewMat.name = $"P{mat.name}";
previewMat.SetOverrideTag("RenderType", "Transparent");
previewMat.EnableKeyword("_ALPHAPREMULTIPLY_ON");
previewMat.EnableKeyword("_SURFACE_TYPE_TRANSPARENT");
previewMat.renderQueue = 3000;
previewMat.SetShaderPassEnabled("DepthOnly", false);
previewMat.SetShaderPassEnabled("SHADOWCASTER", false);
previewMat.color = mat.color.ChangeA(80 / 255f);
return previewMat;
}
Unfortuantely this isn’t working. The generated preview material still shows RenderType: Opaque.
Note: Other properties like the color have been overwritten as intended. So it’s not a problem of EditorUtility.SetDirty() or alike.
Any ideas?
Context:
- I use URP in Unity 2022.3.
- The Materials use the shader “Universal Render Pipeline/Lit”
Kind regards
kfina