GameArea.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. using System;
  2. using UnityEngine;
  3. [ExecuteInEditMode]
  4. public class GameArea : SingletonMono<GameArea>
  5. {
  6. public void Awake()
  7. {
  8. this.Init();
  9. }
  10. [ContextMenu("Init")]
  11. private void Init()
  12. {
  13. GameArea.MapRange.min = this.bottomLeft.position;
  14. GameArea.MapRange.max = this.TopRight.position;
  15. GameArea.CameraRange = GameArea.MapRange;
  16. GameArea.PlayerRange.min = new Vector2(GameArea.CameraRange.min.x - 2f, GameArea.CameraRange.min.y);
  17. GameArea.PlayerRange.max = new Vector2(GameArea.CameraRange.max.x + 2f, GameArea.CameraRange.max.y);
  18. GameArea.EnemyRange = GameArea.CameraRange;
  19. }
  20. public void OnDrawGizmos()
  21. {
  22. if (this._showCamera)
  23. {
  24. DebugX.DrawRect(GameArea.CameraRange, this._cameraRangeColor, 0f);
  25. }
  26. if (this._showPlayer)
  27. {
  28. DebugX.DrawRect(GameArea.PlayerRange, this._playerRangeColor, 0f);
  29. }
  30. if (this._showEnemy)
  31. {
  32. DebugX.DrawRect(GameArea.EnemyRange, this._enemyRangeColor, 0f);
  33. }
  34. if (this._showMap)
  35. {
  36. DebugX.DrawRect(GameArea.MapRange, this._mapRangeColor, 0f);
  37. }
  38. }
  39. [HideInInspector]
  40. public static Rect MapRange;
  41. [HideInInspector]
  42. public static Rect CameraRange;
  43. [HideInInspector]
  44. public static Rect PlayerRange;
  45. [HideInInspector]
  46. public static Rect EnemyRange;
  47. [SerializeField]
  48. private bool _showMap;
  49. [SerializeField]
  50. private Color _mapRangeColor = Color.red;
  51. [SerializeField]
  52. private bool _showCamera;
  53. [SerializeField]
  54. private Color _cameraRangeColor = Color.green;
  55. [SerializeField]
  56. private bool _showPlayer;
  57. [SerializeField]
  58. private Color _playerRangeColor = Color.cyan;
  59. [SerializeField]
  60. private bool _showEnemy;
  61. [SerializeField]
  62. private Color _enemyRangeColor = Color.yellow;
  63. [SerializeField]
  64. private Transform bottomLeft;
  65. [SerializeField]
  66. private Transform TopRight;
  67. }