Untitled
unknown
plain_text
a year ago
1.6 kB
12
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