using UnityEngine; 
 | 
  
 | 
[ExecuteAlways] 
 | 
public class ImageMask : PostEffectsBaseEx 
 | 
{ 
 | 
    static readonly string shaderName = "lcl/screenEffect/MaskEffect"; 
 | 
  
 | 
    // 遮罩大小 
 | 
    [Range(0.01f, 10f), Tooltip("遮罩大小")] 
 | 
    public float size = 5.0f; 
 | 
    // 边缘模糊程度 
 | 
    [Range(0.0001f, 0.1f), Tooltip("边缘模糊程度")] 
 | 
    public float edgeBlurLength = 0.05f; 
 | 
    // 遮罩中心位置 
 | 
    private Vector2 pos = new Vector4(0.5f, 0.5f); 
 | 
  
 | 
    void OnEnable() 
 | 
    { 
 | 
        shader = Shader.Find(shaderName); 
 | 
    } 
 | 
  
 | 
    // 渲染屏幕 
 | 
    void OnRenderImage(RenderTexture source, RenderTexture destination) 
 | 
    { 
 | 
        if (material) 
 | 
        { 
 | 
            // 把鼠标坐标传递给shader 
 | 
            material.SetVector("_Pos", pos); 
 | 
            // 遮罩大小 
 | 
            material.SetFloat("_Size", size); 
 | 
            // 模糊程度 
 | 
            material.SetFloat("_EdgeBlurLength", edgeBlurLength); 
 | 
            // 渲染 
 | 
            Graphics.Blit(source, destination, material); 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
            Graphics.Blit(source, destination); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    // void Update() 
 | 
    // { 
 | 
    //     if (Input.GetMouseButton(0)) 
 | 
    //     { 
 | 
    //         Vector2 mousePos = Input.mousePosition; 
 | 
    //         //将mousePos转化为(0,1)区间 
 | 
    //         pos = new Vector2(mousePos.x / Screen.width, mousePos.y / Screen.height); 
 | 
    //     } 
 | 
    // } 
 | 
} 
 |