透明渲染模式在 windows 构建中不起作用
Transparent rendering mode doesn't work in windows build
Unity: 5.1.1f1
语言: C#
我正在尝试将 GameObject 设置为透明渲染模式,在游戏中。它在编辑器模式下完美运行,但在 windows 构建中什么都不做。
这就是我正在做的事情:
// make object semitransparent
Material m = transform.parent.GetComponent<Renderer>().material;
Color color = m.color;
color.a = 0.5f;
m.SetFloat("_Mode", 3f);
m.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.SrcAlpha);
m.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha);
m.EnableKeyword("_ALPHABLEND_ON");
m.renderQueue = 3000;
m.SetColor("_Color", color);
¿为什么在 Windows Build 中不起作用?
并非所有平台都是一对一的,您创建的 material 的 Alpha 是对根对象 material 的引用并使用其特定着色器。检查您应用到 material 的着色器,找出 alpha 不起作用的原因。
我还会使用“编辑”>“项目设置”>“图形设置”(Unity 5) 确保着色器包含在您构建的项目中。在这里确保 Always Included Shaders 包括您分配给 material.
的着色器
仅供参考:对于移动设备,我进行了一些延迟测试,发现传统 > 透明 > 漫反射在移动设备上仍然比具有透明渲染模式的标准更可靠、速度更快。但是您的里程可能会有所不同。
Unity: 5.1.1f1
语言: C#
我正在尝试将 GameObject 设置为透明渲染模式,在游戏中。它在编辑器模式下完美运行,但在 windows 构建中什么都不做。
这就是我正在做的事情:
// make object semitransparent
Material m = transform.parent.GetComponent<Renderer>().material;
Color color = m.color;
color.a = 0.5f;
m.SetFloat("_Mode", 3f);
m.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.SrcAlpha);
m.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha);
m.EnableKeyword("_ALPHABLEND_ON");
m.renderQueue = 3000;
m.SetColor("_Color", color);
¿为什么在 Windows Build 中不起作用?
并非所有平台都是一对一的,您创建的 material 的 Alpha 是对根对象 material 的引用并使用其特定着色器。检查您应用到 material 的着色器,找出 alpha 不起作用的原因。
我还会使用“编辑”>“项目设置”>“图形设置”(Unity 5) 确保着色器包含在您构建的项目中。在这里确保 Always Included Shaders 包括您分配给 material.
的着色器仅供参考:对于移动设备,我进行了一些延迟测试,发现传统 > 透明 > 漫反射在移动设备上仍然比具有透明渲染模式的标准更可靠、速度更快。但是您的里程可能会有所不同。