Example #1
0
 public static void SetRenderMode(Material material, UniUnlitRenderMode mode, float?cuttOff)
 {
     material.SetInt(PropNameBlendMode, (int)mode);
     if (mode == UniUnlitRenderMode.Cutout && cuttOff.HasValue)
     {
         material.SetFloat(PropNameCutoff, cuttOff.Value);
     }
 }
Example #2
0
        private static void SetupBlendMode(Material material, UniUnlitRenderMode renderMode,
                                           bool isRenderModeChangedByUser = false)
        {
            switch (renderMode)
            {
            case UniUnlitRenderMode.Opaque:
                material.SetOverrideTag(TagRenderTypeKey, TagRenderTypeValueOpaque);
                material.SetInt(PropNameSrcBlend, (int)BlendMode.One);
                material.SetInt(PropNameDstBlend, (int)BlendMode.Zero);
                material.SetInt(PropNameZWrite, 1);
                SetKeyword(material, KeywordAlphaTestOn, false);
                SetKeyword(material, KeywordAlphaBlendOn, false);
                if (isRenderModeChangedByUser)
                {
                    material.renderQueue = -1;
                }
                break;

            case UniUnlitRenderMode.Cutout:
                material.SetOverrideTag(TagRenderTypeKey, TagRenderTypeValueTransparentCutout);
                material.SetInt(PropNameSrcBlend, (int)BlendMode.One);
                material.SetInt(PropNameDstBlend, (int)BlendMode.Zero);
                material.SetInt(PropNameZWrite, 1);
                SetKeyword(material, KeywordAlphaTestOn, true);
                SetKeyword(material, KeywordAlphaBlendOn, false);
                if (isRenderModeChangedByUser)
                {
                    material.renderQueue = (int)RenderQueue.AlphaTest;
                }
                break;

            case UniUnlitRenderMode.Transparent:
                material.SetOverrideTag(TagRenderTypeKey, TagRenderTypeValueTransparent);
                material.SetInt(PropNameSrcBlend, (int)BlendMode.SrcAlpha);
                material.SetInt(PropNameDstBlend, (int)BlendMode.OneMinusSrcAlpha);
                material.SetInt(PropNameZWrite, 0);
                SetKeyword(material, KeywordAlphaTestOn, false);
                SetKeyword(material, KeywordAlphaBlendOn, true);
                if (isRenderModeChangedByUser)
                {
                    material.renderQueue = (int)RenderQueue.Transparent;
                }
                break;

            case UniUnlitRenderMode.TransparentWithZWrite:
                material.SetOverrideTag(TagRenderTypeKey, TagRenderTypeValueTransparent);
                material.SetInt(PropNameSrcBlend, (int)BlendMode.SrcAlpha);
                material.SetInt(PropNameDstBlend, (int)BlendMode.OneMinusSrcAlpha);
                material.SetInt(PropNameZWrite, 1);
                SetKeyword(material, KeywordAlphaTestOn, false);
                SetKeyword(material, KeywordAlphaBlendOn, true);
                if (isRenderModeChangedByUser)
                {
                    material.renderQueue = (int)RenderQueue.AlphaTest + 150;
                }
                break;
            }
        }
 public static void SetRenderMode(Material material, UniUnlitRenderMode mode)
 {
     material.SetInt(PropNameBlendMode, (int)mode);
 }