SceneMask.cs 894 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. using UnityEngine;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. public class SceneMask : MonoBehaviour
  5. {
  6. #region 变量
  7. public Material Material
  8. {
  9. get
  10. {
  11. if (_Material == null)
  12. {
  13. _Material = GetComponent<SpriteRenderer>().material;
  14. }
  15. return _Material;
  16. }
  17. set { _Material = value; }
  18. }
  19. public Material _Material;
  20. #endregion
  21. public void SetArea(Transform tra, float radiusX, float radiusY)
  22. {
  23. Vector3 screenPos = Camera.main.WorldToScreenPoint(tra.position);
  24. screenPos = new Vector3(screenPos.x, Screen.height - screenPos.y, 0);
  25. Material.SetFloat("_RadiusX", radiusX*Screen.width/2);
  26. Material.SetFloat("_RadiusY", radiusY*Screen.width/2);
  27. Material.SetVector("_Center", screenPos);
  28. }
  29. }