SceneMask.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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. public static BoxCollider2D BoxCollider;
  9. #endregion
  10. public void Regist()
  11. {
  12. Material = GetComponent<SpriteRenderer>().material;
  13. BoxCollider = ManaReso.Get<BoxCollider2D>("TutorialCollider");
  14. }
  15. public static void SetArea(Transform tra, float radiusX, float radiusY)
  16. {
  17. Vector3 screenPos = Camera.main.WorldToScreenPoint(tra.position);
  18. screenPos = new Vector3(screenPos.x / Screen.width, screenPos.y / Screen.height, 0);
  19. if (Tutorial.UIMask)
  20. {
  21. Tutorial.Material.SetFloat("_RadiusX", radiusX);
  22. Tutorial.Material.SetFloat("_RadiusY", radiusY);
  23. Tutorial.Material.SetVector("_Center", screenPos);
  24. }
  25. else
  26. {
  27. Material.SetFloat("_RadiusX", radiusX);
  28. Material.SetFloat("_RadiusY", radiusY);
  29. Material.SetVector("_Center", screenPos);
  30. BoxCollider.transform.SetX(tra.position.x);
  31. BoxCollider.transform.SetY(tra.position.y);
  32. BoxCollider.size = new Vector2(36* radiusX, 20*radiusY);
  33. ManaReso.Get("TutorialMask").TweenConForSr();
  34. }
  35. }
  36. public static void ClearArea()
  37. {
  38. if (Tutorial.UIMask)
  39. {
  40. Tutorial.Material.SetFloat("_RadiusX", 0);
  41. Tutorial.Material.SetFloat("_RadiusY", 0);
  42. Tutorial.Material.SetVector("_Center", new Vector2(0, 0));
  43. }
  44. else
  45. {
  46. Material.SetFloat("_RadiusX", 0);
  47. Material.SetFloat("_RadiusY", 0);
  48. Material.SetVector("_Center", new Vector2(0, 0));
  49. BoxCollider.transform.SetX(0);
  50. BoxCollider.transform.SetY(0);
  51. BoxCollider.size = new Vector2();
  52. ManaReso.Get("TutorialMask").TweenConBacSr();
  53. }
  54. }
  55. }