| using UnityEngine; | 
| using System.Collections; | 
|   | 
| //提供一个后处理的基类,主要功能在于直接通过Inspector面板拖入shader,生成shader对应的材质 | 
| public class PostEffectBase : MonoBehaviour | 
| { | 
|   | 
|     //Inspector面板上直接拖入 | 
|     public Shader shader = null; | 
|     private Material _material = null; | 
|     public Material _Material | 
|     { | 
|         get | 
|         { | 
|             if (_material == null) | 
|                 _material = GenerateMaterial(shader); | 
|             return _material; | 
|         } | 
|     } | 
|   | 
|     //根据shader创建用于屏幕特效的材质 | 
|     protected Material GenerateMaterial(Shader shader) | 
|     { | 
|         if (shader == null) | 
|             return null; | 
|         //需要判断shader是否支持 | 
|         if (shader.isSupported == false) | 
|             return null; | 
|         Material material = new Material(shader); | 
|         material.hideFlags = HideFlags.DontSave; | 
|         if (material) | 
|             return material; | 
|         return null; | 
|     } | 
|   | 
| } |