Advertisement
AnomalousUnderdog

Change to transparent/fade/opaque

Jun 26th, 2017
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.43 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4.  
  5. public static class MaterialUtility
  6. {
  7.     public static void SetAlpha(this Material m, float newAlpha)
  8.     {
  9.         var color = m.GetColor("_Color");
  10.         color.a = newAlpha;
  11.         m.SetColor("_Color", color);
  12.     }
  13.  
  14.     public static void ChangeMaterialToTransparent(this Material material)
  15.     {
  16.         ChangeMaterialToTransparent(material, (int)UnityEngine.Rendering.RenderQueue.Transparent);
  17.     }
  18.  
  19.     public static void ChangeMaterialToTransparent(this Material material, int renderQueue)
  20.     {
  21.         material.SetInt("_Mode", 3);
  22.         //material.SetOverrideTag("RenderType", "Transparent");
  23.         material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One);
  24.         material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha);
  25.         material.SetInt("_ZWrite", 0);
  26.         material.DisableKeyword("_ALPHATEST_ON");
  27.         material.DisableKeyword("_ALPHABLEND_ON");
  28.         material.EnableKeyword("_ALPHAPREMULTIPLY_ON");
  29.         material.renderQueue = renderQueue;
  30.     }
  31.    
  32.     public static void ChangeMaterialToFade(this Material material)
  33.     {
  34.         ChangeMaterialToFade(material, (int)UnityEngine.Rendering.RenderQueue.Transparent);
  35.     }
  36.  
  37.     public static void ChangeMaterialToFade(this Material material, int renderQueue)
  38.     {
  39.         material.SetInt("_Mode", 2);
  40.         //material.SetOverrideTag("RenderType", "Transparent");
  41.         material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.SrcAlpha);
  42.         material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha);
  43.         material.SetInt("_ZWrite", 0);
  44.         material.DisableKeyword("_ALPHATEST_ON");
  45.         material.EnableKeyword("_ALPHABLEND_ON");
  46.         material.DisableKeyword("_ALPHAPREMULTIPLY_ON");
  47.         material.renderQueue = renderQueue;
  48.     }
  49.    
  50.     public static void ChangeMaterialToOpaque(this Material material)
  51.     {
  52.         ChangeMaterialToOpaque(material, (int)UnityEngine.Rendering.RenderQueue.Geometry);
  53.     }
  54.  
  55.     public static void ChangeMaterialToOpaque(this Material material, int renderQueue)
  56.     {
  57.         material.SetInt("_Mode", 0);
  58.         //material.SetOverrideTag("RenderType", "Opaque");
  59.         material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.SrcAlpha);
  60.         material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha);
  61.         material.SetInt("_ZWrite", 1);
  62.         material.DisableKeyword("_ALPHATEST_ON");
  63.         material.DisableKeyword("_ALPHABLEND_ON");
  64.         material.EnableKeyword("_ALPHAPREMULTIPLY_ON");
  65.         material.renderQueue = renderQueue;
  66.     }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement