SanAndreasUnity/Assets/Scripts/Facepunch/Utilities/RectTransformEx.cs

25 lines
818 B
C#
Raw Normal View History

2020-05-31 17:07:22 +00:00
using System.Linq;
using UnityEngine.UI;
namespace UnityEngine
{
public static class RectTransformEx
{
private static readonly Vector3[] _sCorners = new Vector3[4];
public static Vector2 GetWorldSize(this RectTransform trans)
{
trans.GetWorldCorners(_sCorners);
return new Vector2(_sCorners.Max(x => x.x) - _sCorners.Min(x => x.x), _sCorners.Max(x => x.y) - _sCorners.Min(x => x.y));
}
public static float GetPreferredTextHeight(this RectTransform trans, Text text)
{
if (text == null) return 0;
var settings = text.GetGenerationSettings(new Vector2(trans.rect.size.x, 0.0f));
return text.cachedTextGeneratorForLayout.GetPreferredHeight(text.text, settings) / text.pixelsPerUnit;
}
}
}