TrapCameraLimited.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. using System;
  2. using UnityEngine;
  3. public class TrapCameraLimited : MonoBehaviour
  4. {
  5. private void OnEnable()
  6. {
  7. this.Init();
  8. }
  9. private void OnDisable()
  10. {
  11. this.Reset();
  12. }
  13. private void Update()
  14. {
  15. if (R.Camera.IsInView(base.gameObject))
  16. {
  17. this.CameraLimited();
  18. }
  19. }
  20. private void CameraLimited()
  21. {
  22. GameArea.CameraRange.xMax = ((!this.rightLimited) ? this.CameraRangeOrigin.xMax : this.right.position.x);
  23. GameArea.CameraRange.xMin = ((!this.leftLimited) ? this.CameraRangeOrigin.xMin : this.left.position.x);
  24. GameArea.CameraRange.yMax = ((!this.topLimited) ? this.CameraRangeOrigin.yMax : this.top.position.y);
  25. GameArea.CameraRange.yMin = ((!this.buttomLimited) ? this.CameraRangeOrigin.yMin : this.buttom.position.y);
  26. }
  27. private void Init()
  28. {
  29. this.CameraRangeOrigin = GameArea.CameraRange;
  30. }
  31. private void Reset()
  32. {
  33. GameArea.CameraRange = this.CameraRangeOrigin;
  34. }
  35. private Rect CameraRangeOrigin;
  36. private float orginMinX;
  37. private float orginMaxX;
  38. private float orginMinY;
  39. private float orginMaxY;
  40. [Header("是否限制右侧边界")]
  41. public bool rightLimited;
  42. [Header("右测边界值")]
  43. public Transform right;
  44. [Header("是否限制左侧边界")]
  45. public bool leftLimited;
  46. [Header("左测边界值")]
  47. public Transform left;
  48. [Header("是否限制上方边界")]
  49. public bool topLimited;
  50. [Header("上方边界值")]
  51. public Transform top;
  52. [Header("是否限制下方边界")]
  53. public bool buttomLimited;
  54. [Header("下方边界值")]
  55. public Transform buttom;
  56. }