Untitled
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