ScreenEffect.cs 951 B

1234567891011121314151617181920212223242526272829303132333435
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. public class ScreenEffect : MonoBehaviour
  5. {
  6. [Range(0f, 4f)]
  7. public float brightness = 1.0f;
  8. [Range(0f, 4f)]
  9. public float saturation = 1.0f;
  10. [Range(0f, 4f)]
  11. public float contrast = 1.0f;
  12. private Material material;
  13. private void Start()
  14. {
  15. material = new Material(Shader.Find("MyShader/BrightnessSaturationContrast"));
  16. material.hideFlags = HideFlags.DontSave;
  17. }
  18. void OnRenderImage(RenderTexture src, RenderTexture dest)
  19. {
  20. if (material != null)
  21. {
  22. material.SetFloat("_Brightness", brightness); // 设置亮度
  23. material.SetFloat("_Saturation", saturation); // 设置饱和度
  24. material.SetFloat("_Contrast", contrast); // 设置对比度
  25. Graphics.Blit(src, dest, material);
  26. }
  27. else
  28. {
  29. Graphics.Blit(src, dest);
  30. }
  31. }
  32. }