Files
unity-application/Assets/Courses/Scripts/PanelWithImage.cs
2023-05-14 20:18:29 +00:00

80 lines
2.1 KiB
C#

using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
/// <summary>
/// Class to handle panel with only image and webcam
/// </summary>
public class PanelWithImage : MonoBehaviour
{
/// <summary>
/// Reference to the feedback progress bar
/// </summary>
public GameObject feedbackProgressObject;
/// <summary>
/// Reference to the object containing the message for when the course is loaded in preview mode
/// </summary>
public GameObject previewMessage;
/// <summary>
/// True if the course is loaded in preview mode, false otherwise
/// </summary>
public bool isPreview;
/// <summary>
/// Reference to the image for displaying the current words sprite
/// </summary>
public Transform signImageContainer;
/// <summary>
/// Reference to the prefab for displaying the image
/// </summary>
public GameObject signImagePrefab;
/// <summary>
/// Reference to the webcam
/// </summary>
public RawImage webcamScreen;
/// <summary>
/// Reference to the feedback field
/// </summary>
public TMP_Text feedbackText;
/// <summary>
/// Reference to the progress bar
/// </summary>
public Slider feedbackProgressBar;
/// <summary>
/// Reference to the progress bar image, so we can add fancy colors
/// </summary>
public Image feedbackProgressImage;
/// <summary>
/// Reference to the list of learnables
/// </summary>
public List<Learnable> signs;
/// <summary>
/// Index of the current learnable in the list with learnables
/// </summary>
public int currentSignIndex;
/// <summary>
/// Update the display of this panel
/// </summary>
public void Display()
{
Learnable currentSign = signs[currentSignIndex];
feedbackProgressObject.SetActive(!isPreview);
previewMessage.SetActive(isPreview);
GameObject sprite = GameObject.Instantiate(signImagePrefab, signImageContainer);
sprite.GetComponent<Image>().sprite = currentSign.image;
}
}