ZhangZhouSpecialEquipment/Assets/mod/叉车/港口场景/gangkou/Water Shader/_Resources/UnderWaterPostEffect.cs

77 lines
1.9 KiB
C#

//Use Custom-Light for PostEffects in Shader Forge
// C# version by Felipe Mendez (DeadlyCrow).
using UnityEngine;
using System.Collections;
[ExecuteInEditMode]
[RequireComponent(typeof (Camera))]
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);
}
}
}