using UnityEngine; using UnityEngine.SceneManagement; public class ThemeSelectionController : MonoBehaviour { [Header("Theme Selection")] // Theme prefab public GameObject themePrefab; // Reference to container holding all theme-buttons public Transform themesContainer; public void Start() { // TODO: change to ScriptableObject ThemeList themeList = ThemeLoader.LoadJson(); for (int i = 0; i < themeList.themes.Length; i++) { Theme theme = themeList.themes[i]; // First, you need to create a new button game object GameObject instance = GameObject.Instantiate(themePrefab, themesContainer); // Dynamically load appearance ThemeItem item = instance.GetComponent(); item.themeTitle = theme.name; item.themeDescription = theme.description; item.startGameCallback = () => OnButtonClick(theme.name); } } public void OnButtonClick(string clickedTheme) { PlayerPrefs.SetString("themeName", clickedTheme); SceneManager.LoadScene("Game"); } }