Files
Inter-Face-Off/Assets/Scripts/CanvasManager.cs
2026-01-13 12:19:07 +00:00

41 lines
1.1 KiB
C#

using UnityEngine;
namespace InterfaceOff
{
public class CanvasManager : MonoBehaviour
{
[field: SerializeField] public Canvas GameCanvas { get; private set; }
public static CanvasManager Instance { get; private set; }
private void Awake()
{
if (DebugUtils.IsNull(Instance))
{
Instance = this;
return;
}
Debug.LogError("Multiple instances of Canvas Manager have been found");
}
public static Vector3 GetRandomPositionOnCanvas()
{
Rect rect = Instance.GameCanvas.pixelRect;
float x = Random.Range(rect.xMin, rect.xMax);
float y = Random.Range(rect.yMin, rect.yMax);
return new Vector3(x, y, 0f);
}
public static bool IsRectWithinCanvas(Rect rect)
{
Rect b = Instance.GameCanvas.pixelRect;
Rect a = rect;
return b.xMin <= a.xMin && b.yMin <= a.yMin && b.xMax >= a.xMax && b.yMax >= a.yMax;
}
}
}