using UnityEngine; using UnityEngine.UI; using System.IO; namespace InterfaceOff { [System.Serializable] public struct TriviaQuestion { /* Disables name warnings because of JSON serialization */ // ReSharper disable once InconsistentNaming public string question; // ReSharper disable once InconsistentNaming public string[] choices; // ReSharper disable once InconsistentNaming public string answer; } [System.Serializable] public struct TriviaSet { /* Disables name warnings because of JSON serialization */ // ReSharper disable once InconsistentNaming public TriviaQuestion[] questions; } public class TriviaWindow : WindowBase { private static TriviaSet Trivia; private static Vector2[] Positions { get; } = { new(-110, 30f), new(110f, 30f), new(-110, -60), new(110f, -60) }; [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] private static void LoadTriviaSet() { string path = Application.streamingAssetsPath + "/Trivia.json"; string json = File.ReadAllText(path); Trivia = JsonUtility.FromJson(json); } public override void OnWindowInstantiation() { /* Fetches a random question and sets it as the title */ TriviaQuestion question = Trivia.questions[Random.Range(0, Trivia.questions.Length)]; Components.InfoText.text = question.question; Components.SetWidth(500); // Larger width is needed for this component that others /* Adds the answer boxes */ for (int i = 0; i < 4; i++) { /* Creates the gameobject and fetches the needed components */ GameObject go = Instantiate(PrefabRegistry.Instance.TextButtonPrefab, transform); Text text = go.GetComponentInChildren(); Button button = go.GetComponent