52 lines
1.4 KiB
C#
52 lines
1.4 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.SceneManagement;
|
|
using UnityEngine.UI;
|
|
|
|
public class CourseItem : MonoBehaviour
|
|
{
|
|
// TODO: change to ScriptableObject Course;
|
|
[Header("ScriptableObject Course")]
|
|
public string courseTitle;
|
|
public float courseProgress;
|
|
public Sprite courseThumbnail;
|
|
public string courseScene;
|
|
|
|
[Header("UI references")]
|
|
// Reference to thumbnail object
|
|
public Image thumbnail;
|
|
// Reference to title object
|
|
public TMP_Text title;
|
|
// Refetence to object so correct callback can be trigger on click
|
|
public Button button;
|
|
// Reference to progress bar
|
|
public GameObject slider;
|
|
// Reference to `COMPLETED`
|
|
public GameObject completed;
|
|
|
|
|
|
void Start()
|
|
{
|
|
// Use public function so that this component can get Instantiated
|
|
GenerateContent();
|
|
}
|
|
|
|
public void GenerateContent()
|
|
{
|
|
// Set appearance
|
|
thumbnail.sprite = courseThumbnail;
|
|
title.text = courseTitle;
|
|
|
|
// Set progress
|
|
float progress = Mathf.Clamp01(courseProgress);
|
|
completed.SetActive(1.0f <= progress);
|
|
slider.SetActive(0.0f < progress && progress < 1.0f);
|
|
slider.GetComponent<Slider>().value = progress;
|
|
|
|
// Add click functionality
|
|
button.onClick.AddListener(() => SceneManager.LoadScene(courseScene));
|
|
}
|
|
}
|