using UnityEngine; [ExecuteInEditMode] public class Dimensions : MonoBehaviour { [Tooltip("How much height for player panels")] public float panelHeightPercentage; [Tooltip("How much height is the empty space between board and death zone")] public float emptySpacePercentage; [Tooltip("Aspect ratio of the playground")] public float playGroundAspect; public Camera mainCamera; public EdgeCollider2D topC, bottomC, leftC, rightC; public SpriteRenderer playGround; public SpriteRenderer playerPanelTop; public SpriteRenderer playerPanelBottom; public SpriteRenderer background; public static Dimensions Singleton; private void OnEnable() { Singleton = this; } public float top, bottom, left, right; public float boardTop, boardBottom; public float Width => right * 2; public float Height => top * 2; private void Update() { float height = mainCamera.orthographicSize * 2; float panelHeight = height * panelHeightPercentage / 100f; float playGroundHeight = height - 2 * panelHeight; float playGroundWidth = playGroundHeight * playGroundAspect; float emptySpaceHeight = playGroundHeight * emptySpacePercentage / 100f; top = playGroundHeight / 2; bottom = -top; right = playGroundWidth / 2; left = -right; boardTop = top - emptySpaceHeight; boardBottom = -boardTop; Vector2 v1 = new Vector2(left, 0); Vector2 v2 = new Vector2(right, 0); Vector2 v3 = new Vector2(0, top); Vector2 v4 = new Vector2(0, bottom); topC.transform.position = new Vector2(0, top); bottomC.transform.position = new Vector2(0, bottom); leftC.transform.position = new Vector2(left, 0); rightC.transform.position = new Vector2(right, 0); topC.points = new[] {v1, v2}; bottomC.points = new[] {v1, v2}; leftC.points = new[] {v3, v4}; rightC.points = new[] {v3, v4}; playGround.transform.rotation = Quaternion.Euler(0, 0, 90); playGround.size = new Vector2(playGroundHeight, playGroundWidth); playerPanelTop.transform.position = new Vector2(0, (height + Height) / 4); playerPanelBottom.transform.position = new Vector2(0, -(height + Height) / 4); float allWidth = mainCamera.aspect * height; playerPanelTop.size = playerPanelBottom.size = new Vector2(allWidth, panelHeight); background.size = new Vector2(allWidth, playGroundHeight); } }