Esempio n. 1
0
 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;
        }