文档
Unity Shader 变体 https://docs.unity3d.com/cn/current/Manual/shader-variants.html
问题
Unity2019.4.40
使用代码修改材质的渲染模式为Fade:
编辑器中,有透明效果,
发布后运行,无透明效果。
原因
发布时Unity会自动剔除未使用的shader变体,脚本动态修改无法识别到该shader变体需要使用。
解决
场景中引用一个对应渲染模式的材质球作为模板,确保发布时Unity可以识别到。
示例
新建脚本,挂载在场景中,引用一个材质,示例为Fade渲染模式的材质球。
csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 材质模板,确保材质不被Unity剔除
/// </summary>
public class MaterialTemplate : MonoBehaviour
{
[SerializeField] Material[] materials;
}