| 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); | 
|     //     } | 
|     // } | 
| } |