GameOff2024/Assets/Scripts/UI/Answer/AnswerDisplayUI.cs

51 lines
1.3 KiB
C#

using System;
using GameOff.Core;
using UnityEngine;
using UnityEngine.UI;
namespace GameOff.UI.Answer
{
public class AnswerDisplayUI: MonoBehaviour
{
[SerializeField] private QuizTaker target;
[SerializeField] private Text title;
[SerializeField] private AnswerUI answerPrefab;
[SerializeField] private Transform answerHolder;
private void OnEnable()
{
target.OnAnswerUpdate += QuizTaker_OnAnswerUpdate;
title.text = $"{target.transform.name} Answers";
ClearChildren();
UpdateAnswers();
}
private void OnDisable()
{
target.OnAnswerUpdate -= QuizTaker_OnAnswerUpdate;
}
private void QuizTaker_OnAnswerUpdate(object sender, EventArgs e)
{
ClearChildren();
UpdateAnswers();
}
private void UpdateAnswers()
{
string[] answers = target.Answers;
for (int i = 0; i < answers.Length; i++)
Instantiate(answerPrefab, answerHolder).SetUp(i + 1, answers[i] == null ? "-" : answers[i]);
}
private void ClearChildren()
{
foreach (Transform child in answerHolder)
Destroy(child.gameObject);
}
}
}