using UnityEngine; using UnityEngine.UI; using System.Collections; public static class ExtensionResize { public static void Resize(this Image image, bool ratio, float x = -999999999, float y = -999999999) { Vector2 newSize; SizeMap(ratio, image.sprite.rect.size, ref x, ref y); if (ratio) { newSize = image.sprite.rect.size; newSize.x *= x; newSize.y *= y; } else { newSize = new Vector2(x, y); } image.rectTransform.sizeDelta = newSize; } public static void Resize(this Image image, bool ratio, Vector2 size) { Vector2 newSize; if (ratio) { newSize = image.sprite.rect.size; newSize.x *= size.x; newSize.y *= size.y; } else { newSize = size; } image.rectTransform.sizeDelta = newSize; } public static void Resize(this RectTransform rectTransform, bool ratio, float x = -999999999, float y = -999999999) { Vector2 newSize; SizeMap(ratio, rectTransform.rect.size, ref x, ref y); if (ratio) { newSize = rectTransform.rect.size; newSize.x *= x; newSize.y *= y; } else { newSize = new Vector2(x, y); } rectTransform.sizeDelta = newSize; } public static void Resize(this RectTransform rectTransform, bool ratio, Vector2 size) { Vector2 newSize; if (ratio) { newSize = rectTransform.rect.size; newSize.x *= size.x; newSize.y *= size.y; } else { newSize = size; } rectTransform.sizeDelta = newSize; } public static void Resize(this Text text, bool preferredWidth, bool preferredHeight) { Vector2 newSize = new Vector2(); if (preferredWidth) { newSize.x = text.preferredWidth; } else { newSize.x = -999999999; } if (preferredHeight) { newSize.x = text.preferredHeight; } else { newSize.y = -999999999; } text.rectTransform.Resize(false, newSize.x, newSize.y); } private static void SizeMap(bool ratio, Vector2 size, ref float x, ref float y) { if (ratio) { if (x.Equal(-999999999)) { x = 1; } if (y.Equal(-999999999)) { y = 1; } } else { if (x.Equal(-999999999)) { x = size.x; } if (y.Equal(-999999999)) { y = size.y; } } } }