透明渲染模式在 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.

的着色器

仅供参考:对于移动设备,我进行了一些延迟测试,发现传统 > 透明 > 漫反射在移动设备上仍然比具有透明渲染模式的标准更可靠、速度更快。但是您的里程可能会有所不同。