Theme selection screen
This commit is contained in:
77
Assets/Scripts/SpellingBeeThemeSelectionController.cs
Normal file
77
Assets/Scripts/SpellingBeeThemeSelectionController.cs
Normal file
@@ -0,0 +1,77 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using TMPro;
|
||||
|
||||
public class SpellingBeeThemeSelectionController : MonoBehaviour {
|
||||
public Button buttonPrefab;
|
||||
public Transform parentTransform;
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
int canvasWidth = 1920;
|
||||
int canvasHeight = 1080;
|
||||
|
||||
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 newButton = new GameObject("Button - " + theme.name);
|
||||
newButton.transform.SetParent(gameObject.transform);
|
||||
|
||||
// Then, add the button component to the game object
|
||||
Button buttonComponent = newButton.AddComponent<Button>();
|
||||
|
||||
// Set the position of the button game object
|
||||
|
||||
// Create the text game object
|
||||
GameObject textObject = new GameObject("Text - " + theme.name);
|
||||
textObject.transform.SetParent(newButton.transform);
|
||||
|
||||
int xPos = (int) (i % 2 == 0 ? canvasWidth * 0.25f : canvasWidth * 0.75f);
|
||||
int yPos = (1 + i / 2) * 180;
|
||||
|
||||
newButton.transform.position = new Vector2(xPos, yPos);
|
||||
|
||||
// Add the text component to the game object
|
||||
Text textComponent = textObject.AddComponent<Text>();
|
||||
textComponent.alignment = TextAnchor.MiddleCenter;
|
||||
|
||||
// Set the text content and font size
|
||||
textComponent.text = theme.name;
|
||||
textComponent.rectTransform.sizeDelta = new Vector2(300, 120);
|
||||
|
||||
// Set the parent of the text game object to the button game object
|
||||
textComponent.font = Resources.GetBuiltinResource<Font>("Arial.ttf");
|
||||
textComponent.fontSize = 42;
|
||||
buttonComponent.onClick.AddListener(() => OnButtonClick(theme.name));
|
||||
|
||||
// Set the size and position of the text game object
|
||||
/*
|
||||
RectTransform textTransform = textObject.GetComponent<RectTransform>();
|
||||
textTransform.sizeDelta = new Vector2(200, 50);
|
||||
textTransform.anchoredPosition = Vector2.zero;
|
||||
|
||||
// Set the parent of the button game object to the canvas
|
||||
newButton.transform.SetParent(canvas.transform, false);
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
void OnButtonClick(string clickedTheme)
|
||||
{
|
||||
Debug.Log("Button " + clickedTheme + " clicked!");
|
||||
PlayerPrefs.SetString("themeName", clickedTheme);
|
||||
ChangeSceneOnClick.loadScene("SpellingBee");
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user