public UIObject AspectRatioSizeFitter(AspectRatioFitter.AspectMode mode, float ratio) { if (!AspectRatioFitter) { gameObject.AddComponent <AspectRatioFitter>(); } AspectRatioFitter.aspectMode = mode; AspectRatioFitter.aspectRatio = ratio; return(this); }
public void Change(Sprite sprite) { AspectRatioFitter.enabled = false; Image.sprite = sprite; RectTransformExtensions.SetAnchor(transform, AnchorPresets.MiddleCenter); transform.sizeDelta = new Vector2(sprite.rect.width, sprite.rect.height); bool bWidth = transform.rect.width > transform.rect.height; AspectRatioFitter.AspectMode aspectMode = bWidth ? AspectRatioFitter.AspectMode.WidthControlsHeight : AspectRatioFitter.AspectMode.HeightControlsWidth; float aspectRatio = bWidth ? transform.rect.height / transform.rect.width : transform.rect.width / transform.rect.height; AspectRatioFitter.aspectMode = aspectMode; AspectRatioFitter.aspectRatio = aspectRatio; AspectRatioFitter.enabled = true; RectTransformExtensions.SetAnchor(transform, AnchorPresets.StretchAll); transform.sizeDelta = Vector2.zero; transform.anchoredPosition = Vector2.zero; }