public Shader shader = null;
private Material _material = null;
public Material _Material
{
get
{
if (_material == null)
_material = GenerateMaterial(shader);
return _material;
}
}
protected Material GenerateMaterial(Shader shader)
{
if (shader == null)
return null;
if (shader.isSupported == false)
return null;
Material material = new Material(shader);
material.hideFlags = HideFlags.DontSave;
if (material)
return material;
return null;
}
[SerializeField]
float m_brightness = 1;
[SerializeField]
float m_saturation = 0;
[SerializeField]
float m_contrast = 0;
private void Awake()
{
shader = Shader.Find(shaderName);//Shader "GYJ/Effect/Effect"
}
void OnRenderImage(RenderTexture source, RenderTexture destination)
{
if (_Material == null)
{
DestroyImmediate(this);
return;
}
base._Material.SetFloat("_Brightness", m_brightness);
base._Material.SetFloat("_Saturation", m_saturation);
base._Material.SetFloat("_Contrast", m_contrast);
//OnRenderImage(src, dest);
Graphics.Blit(source, destination, _Material);
}
ClassType curShaderCS = gameObject.AddComponent(Type.GetType(className)) as ClassType;