SanAndreasUnity/Assets/Scripts/Facepunch/Utilities/RectTransformEx.cs
2020-05-31 19:07:22 +02:00

25 lines
No EOL
818 B
C#

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;
}
}
}