using UnityEngine;
[ExecuteInEditMode]
[RequireComponent(typeof(Camera))]
public class ScreenFade : MonoBehaviour
{
public static ScreenFade instance;
#region Variables
public bool BeginFade = false;
public Shader RadialBlurShader = null;
private Material RadialBlurMaterial = null;
[Range(0.0f, 2.0f)]
public float SampleDist = 0f;
[Range(0.0f, 5.0f)]
public float SampleStrength = 0f;
public Texture2D _maskTexture;
public Texture2D maskTexture
{
get
{
if (_maskTexture == null)
_maskTexture = (Texture2D)Resources.Load<Texture2D>(texture);
}
return _maskTexture;
}
}
#endregion
public static void Start(Color newColor, float duration)
{
if (instance)
{
instance.StartFade(newColor, duration);
}
}
public void StartFade(Color newColor, float duration)
{
BeginFade = true;
}
void Start()
{
FindShaders();
CreateMaterials();
instance = this;
}
void FindShaders()
{
if (!RadialBlurShader)
{
RadialBlurShader = Shader.Find("PengLu/ImageEffect/Unlit/RadialBlur");
//RadialBlurShader = Shader.Find("Particles/Additive");
}
}
<
[ExecuteInEditMode]
[RequireComponent(typeof(Camera))]
public class ScreenFade : MonoBehaviour
{
public static ScreenFade instance;
#region Variables
public bool BeginFade = false;
public Shader RadialBlurShader = null;
private Material RadialBlurMaterial = null;
[Range(0.0f, 2.0f)]
public float SampleDist = 0f;
[Range(0.0f, 5.0f)]
public float SampleStrength = 0f;
public Texture2D _maskTexture;
public Texture2D maskTexture
{
get
{
if (_maskTexture == null)
{
//这是一张黑色的Png 图片就可以了,想做其他效果可以改变图片的透明度等
string texture = "EyeFade";_maskTexture = (Texture2D)Resources.Load<Texture2D>(texture);
}
return _maskTexture;
}
}
#endregion
public static void Start(Color newColor, float duration)
{
if (instance)
{
instance.StartFade(newColor, duration);
}
}
public void StartFade(Color newColor, float duration)
{
BeginFade = true;
}
void Start()
{
FindShaders();
CreateMaterials();
instance = this;
}
void FindShaders()
{
if (!RadialBlurShader)
{
RadialBlurShader = Shader.Find("PengLu/ImageEffect/Unlit/RadialBlur");
//RadialBlurShader = Shader.Find("Particles/Additive");
}
}
<