Untitled

 avatar
unknown
plain_text
a year ago
1.6 kB
7
Indexable
    public IEnumerator IECalculate()
    {
        Camera cam = Camera.main;

        var sizeCam = cam.orthographicSize;

        Canvas.ForceUpdateCanvases();

        yield return new WaitForFixedUpdate();

        var _bounds = CalculateEncapsulatedBounds(shapeParent.gameObject);

        var topLimit = topNeo.position.y;
        var botLimit = botNeo.position.y;
        var rightLimit = rightNeo.position.x;
        var leftLimit = leftNeo.position.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);

        var ratio = 0f;

        if (max == top)
        {
            ratio = topLimit / sizeCam;
        }
        else if (max == bot)
        {
            ratio = -(botLimit / sizeCam);
        }
        else if (max == right)
        {
            ratio = rightLimit / (sizeCam * cam.aspect);
        }
        else
        {
            ratio = -(leftLimit / (sizeCam * cam.aspect));
        }

        max /= ratio;

        cam.orthographicSize = Mathf.Max(15, sizeCam + max);
    }
Editor is loading...
Leave a Comment