Square2D.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #if UNITY_EDITOR
  2. using UnityEngine;
  3. namespace O3DWB
  4. {
  5. public struct Square2D
  6. {
  7. #region Private Variables
  8. private Vector2 _center;
  9. private float _sideLength;
  10. #endregion
  11. #region Public Properties
  12. public Vector2 Center { get { return _center; } set { _center = value; } }
  13. public float SideLength { get { return _sideLength; } set { _sideLength = Mathf.Max(0.0f, value); } }
  14. #endregion
  15. #region Constructors
  16. public Square2D(float sideLength)
  17. {
  18. _center = Vector2.zero;
  19. _sideLength = 0.0f;
  20. SideLength = sideLength;
  21. }
  22. public Square2D(Vector2 center, float sideLength)
  23. {
  24. _center = center;
  25. _sideLength = 0.0f;
  26. SideLength = sideLength;
  27. }
  28. #endregion
  29. #region Public Methods
  30. public Rect ToRectangle()
  31. {
  32. Vector2 minPointPosition = new Vector2(_center.x - _sideLength * 0.5f, _center.y - _sideLength * 0.5f);
  33. return new Rect(minPointPosition.x, minPointPosition.y, _sideLength, _sideLength);
  34. }
  35. #endregion
  36. }
  37. }
  38. #endif