using UnityEngine.UI; using UnityEngine; namespace InterfaceOff { [System.Serializable] public struct ImageSet { [field: SerializeField] public Sprite[] Images { get; set; } } [CreateAssetMenu(fileName = "Image Registry", menuName = "Custom/Create Image Registry")] public class ImageRegistry : ScriptableObject { [field: SerializeField] public ImageSet[] Registered { get; set; } public Sprite[] GetRandomSpriteSet() { int index = Random.Range(0, Registered.Length); return Registered[index].Images; } } public class ImageWindow : WindowBase { private static Vector3[] Positions = { new(-45, 45f), new(45f, 45f), new(-45, -45), new(45f, -45) }; private int m_TilesRotatedCorrectly; public override void OnWindowInstantiation() { Sprite[] sprites = CanvasManager.Instance.Images.GetRandomSpriteSet(); for (int i = 0; i < 4; i++) { GameObject go = Instantiate(CanvasManager.Instance.ImagePrefab, transform); RectTransform t = go.GetComponent(); t.sizeDelta = new Vector2(80, 80); t.localPosition = Positions[i]; t.eulerAngles = new Vector3(0, 0, Random.Range(1, 4) * 90); Image img = go.GetComponent(); img.material = new Material(Shader.Find("UI/Default")); img.sprite = sprites[i]; Button button = go.GetComponent