NewN_UAVPlane/Assets/art/haidao/DCG Shaders/Water Shader/_Resources/UnderWaterPostEffect.cs

83 lines
1.8 KiB
C#

//Use Custom-Light for PostEffects in Shader Forge
// C# version by Felipe Mendez (DeadlyCrow).
using UnityEngine;
public class UnderWaterPostEffect : MonoBehaviour
{
Material MaterialToRender;
string PostEffectName;
public Shader ShaderToRender;
public Texture2D NormalDistortion;
public float speed = 3f, intensity = 0.2f, DistortionScale = 0.15f;
public Color UnderWaterColor;
void Awake()
{
if (!ShaderToRender)
{
ShaderToRender = Shader.Find("Hidden/DCG/Water Shader/Underwater");
}
if (MaterialToRender != null)
{
applyParameters();
}
}
void OnEnable()
{
if (!ShaderToRender)
{
ShaderToRender = Shader.Find("Hidden/DCG/Water Shader/Underwater");
}
//UnityEditor.EditorApplication.update = UpdateStringName;
}
/*
void OnDisable()
{
}
*/
void UpdateStringName()
{
if (ShaderToRender)
PostEffectName = ShaderToRender.name;
else
PostEffectName = "No shader has been found";
applyParameters();
}
void OnRenderImage(RenderTexture Source, RenderTexture Destination)
{
if (ShaderToRender != null)
{
if (MaterialToRender != null)
{
Graphics.Blit(Source, Destination, MaterialToRender);
}
else
{
MaterialToRender = new Material(ShaderToRender);
}
}
}
void applyParameters()
{
if (MaterialToRender)
{
MaterialToRender.SetTexture("_Distortion", NormalDistortion);
MaterialToRender.SetFloat("_Intensity", intensity);
MaterialToRender.SetFloat("_Speed", speed);
MaterialToRender.SetColor("_Tint", UnderWaterColor);
// MaterialToRender.SetFloat ("_Fallof", DepthDensity);
// MaterialToRender.SetFloat ("_Density", FallofDensity);
// MaterialToRender.SetFloat ("_UseDepth", System.Convert.ToSingle (UseDepth));
// MaterialToRender.SetFloat ("_Bypass", System.Convert.ToSingle (BypassEffect));
MaterialToRender.SetFloat("_Scale", DistortionScale);
}
}
}