PostEffectsBase.cs 890 B

1234567891011121314151617181920212223242526272829
  1. using UnityEngine;
  2. //提供一个后处理的基类,主要功能在于直接通过Inspector面板拖入shader,生成shader对应的材质
  3. public class PostEffectsBase : MonoBehaviour
  4. {
  5. //Inspector面板上直接拖入
  6. public Shader shader = null;
  7. private Material _material = null;
  8. /// <summary>
  9. /// 检测需要渲染的Shader可用性,然后返回使用了该shader的material
  10. /// </summary>
  11. /// <param name="shader">指定shader</param>
  12. /// <param name="material">创建的材质</param>
  13. /// <returns>得到指定shader的材质</returns>
  14. protected Material CheckShaderAndCreateMaterial(Shader shader, ref Material material)
  15. {
  16. if (shader == null || !shader.isSupported)
  17. return null;
  18. if (material && material.shader == shader)
  19. return material;
  20. material = new Material(shader);
  21. material.hideFlags = HideFlags.DontSave;
  22. return material;
  23. }
  24. }