SceneMask.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using UnityEngine;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. public class SceneMask : MonoBehaviour
  5. {
  6. #region 变量
  7. public static Material Material;
  8. #endregion
  9. public void Regist()
  10. {
  11. Material = GetComponent<SpriteRenderer>().material;
  12. }
  13. public static void SetArea(Transform tra, float radiusX, float radiusY)
  14. {
  15. Vector3 screenPos = Camera.main.WorldToScreenPoint(tra.position);
  16. screenPos = new Vector3(screenPos.x / Screen.width, screenPos.y / Screen.height, 0);
  17. if (Tutorial.UIMask)
  18. {
  19. Tutorial.Material.SetFloat("_RadiusX", radiusX);
  20. Tutorial.Material.SetFloat("_RadiusY", radiusY);
  21. Tutorial.Material.SetVector("_Center", screenPos);
  22. }
  23. else
  24. {
  25. Material.SetFloat("_RadiusX", radiusX);
  26. Material.SetFloat("_RadiusY", radiusY);
  27. Material.SetVector("_Center", screenPos);
  28. ManaReso.Get("TutorialMask").TweenConForSr();
  29. }
  30. }
  31. public static void ClearArea()
  32. {
  33. if (Tutorial.UIMask)
  34. {
  35. Tutorial.Material.SetFloat("_RadiusX", 0);
  36. Tutorial.Material.SetFloat("_RadiusY", 0);
  37. Tutorial.Material.SetVector("_Center", new Vector2(0, 0));
  38. }
  39. else
  40. {
  41. Material.SetFloat("_RadiusX", 0);
  42. Material.SetFloat("_RadiusY", 0);
  43. Material.SetVector("_Center", new Vector2(0, 0));
  44. ManaReso.Get("TutorialMask").TweenConBacSr();
  45. }
  46. }
  47. }