GrayMaterialModifier.cs 1011 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. using CommonUI_Unity3D.Impl;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using UnityEngine;
  7. using UnityEngine.EventSystems;
  8. using UnityEngine.UI;
  9. namespace CommonUnity3D.UGUI
  10. {
  11. [DisallowMultipleComponent, ExecuteInEditMode, RequireComponent(typeof(CanvasRenderer)), RequireComponent(typeof(RectTransform))]
  12. public class GrayMaterialModifier : UIBehaviour, IMaterialModifier
  13. {
  14. protected Material gray_mat;
  15. public virtual Material GetModifiedMaterial(Material baseMaterial)
  16. {
  17. if (gray_mat == null)
  18. {
  19. gray_mat = new Material(baseMaterial);
  20. gray_mat.SetFloat("_Gray", 1);
  21. gray_mat.SetPass(0);
  22. }
  23. return gray_mat;
  24. }
  25. protected override void OnDestroy()
  26. {
  27. if (gray_mat != null)
  28. {
  29. Material.Destroy(gray_mat);
  30. }
  31. base.OnDestroy();
  32. }
  33. }
  34. }