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