Files
unity-application/Assets/SpellingBee/Scripts/ThemeItem.cs
Dries Van Schuylenbergh 26f3322e4e Add formatting rules
2023-03-10 09:21:11 +00:00

66 lines
1.6 KiB
C#

using TMPro;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.UI;
/// <summary>
/// Handles the display of themes in the ThemeSelectionController scene
/// </summary>
public class ThemeItem : MonoBehaviour
{
/// <summary>
/// The theme title
/// </summary>
public string themeTitle;
/// <summary>
/// A short description of the theme
/// </summary>
public string themeDescription;
/// <summary>
/// The callback function to start the game with the correct theme loaded
/// </summary>
public UnityAction startGameCallback;
/// <summary>
/// UI reference to the gameobject for displaying the theme title
/// </summary>
public TMP_Text title;
/// <summary>
/// UI reference to the gameobject for displaying the description
/// </summary>
public TMP_Text description;
/// <summary>
/// UI reference to the button so the correct callback can be trigger on click
/// </summary>
public Button button;
/// <summary>
/// Start is called before the first frame update
/// </summary>
void Start()
{
// Use public function so that this component can get Instantiated
GenerateContent();
}
/// <summary>
/// (Re)generate the ThemeItem object and update its appearance
/// </summary>
public void GenerateContent()
{
// Set appearance
title.text = themeTitle;
// TODO: make description only visible when hovering
description.text = themeDescription;
// Add click functionality
button.onClick.AddListener(startGameCallback);
}
}