using System.Collections.Generic;
using UnityEngine;
namespace GameKit.Dependencies.Utilities
{
public static class Transforms
{
///
/// Returns the sizeDelta halfed.
///
/// True to multiple values by RectTransform scale.
public static Vector2 HalfSizeDelta(this RectTransform rectTransform, bool useScale = false)
{
Vector2 sizeDelta = (useScale) ? rectTransform.SizeDeltaScaled() : rectTransform.sizeDelta;
return (sizeDelta / 2f);
}
///
/// Returns the sizeDelta multiplied by scale.
///
public static Vector2 SizeDeltaScaled(this RectTransform rectTransform)
{
return (rectTransform.sizeDelta * rectTransform.localScale);
}
///
/// Returns a position for the rectTransform ensuring it's fully on the screen.
///
/// Preferred position for the rectTransform.
/// How much padding the transform must be from the screen edges.
public static Vector3 GetOnScreenPosition(this RectTransform rectTransform, Vector3 desiredPosition, Vector2 padding)
{
RectTransform canvasRectTransform = rectTransform.GetComponentInParent