41 lines
1.1 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|