Untitled

 avatar
unknown
plain_text
a year ago
1.5 kB
4
Indexable
public Collider2D topCollider;
    public Collider2D botCollider;
    public Collider2D leftCollider;
    public Collider2D rightCollider;

    public Bounds _bounds;

public void Calculate()
    {
        StartCoroutine(IECalculate());
    }

    public IEnumerator IECalculate()
    {
        shapeParent.transform.position = Vector3.zero;

        Canvas.ForceUpdateCanvases();

        yield return new WaitForSeconds(0.5f);

        _bounds = CalculateEncapsulatedBounds(shapeParent.gameObject);

        var topLimit = topCollider.bounds.center.y;
        var botLimit = botCollider.bounds.center.y;
        var rightLimit = rightCollider.bounds.center.x;
        var leftLimit = leftCollider.bounds.center.x;

        var objectCenter = _bounds.center.y;

        var objectMaxY = _bounds.max.y;
        var objectMinY = _bounds.min.y;

        var objectMaxX = _bounds.max.x;
        var objectMinX = _bounds.min.x;

        var offset = -objectCenter + (topLimit + botLimit) / 2f;

        shapeParent.transform.position = new Vector2(0f, offset);

        var top = objectMaxY - topLimit + offset;
        var bot = -(objectMinY - botLimit + offset);
        var right = objectMaxX - rightLimit;
        var left = -(objectMinX - leftLimit);

        var max = Mathf.Max(top, bot, right, left);

        Camera.main.orthographicSize += max * 2f;

        Camera.main.orthographicSize = Mathf.Max(15, Camera.main.orthographicSize);
    }
Editor is loading...
Leave a Comment