Sprint 4
This commit is contained in:
91
Assets/Courses/Scripts/PanelWithVideoAndImage.cs
Normal file
91
Assets/Courses/Scripts/PanelWithVideoAndImage.cs
Normal file
@@ -0,0 +1,91 @@
|
||||
using System.Collections.Generic;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using UnityEngine.Video;
|
||||
|
||||
public class PanelWithVideoAndImage : MonoBehaviour
|
||||
{
|
||||
public GameObject feedbackProgressObject;
|
||||
public GameObject previewMessage;
|
||||
public bool isPreview;
|
||||
|
||||
public Sprite playSprite;
|
||||
public Sprite pauseSprite;
|
||||
|
||||
/// <summary>
|
||||
/// Reference to instructional video player
|
||||
/// </summary>
|
||||
public VideoPlayer videoPlayer;
|
||||
public Image playButton;
|
||||
public RawImage webcamScreen;
|
||||
|
||||
/// <summary>
|
||||
/// Reference to the image for displaying the current words sprite
|
||||
/// </summary>
|
||||
public Transform signImageContainer;
|
||||
|
||||
public GameObject signImagePrefab;
|
||||
|
||||
/// <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;
|
||||
|
||||
public List<Learnable> signs;
|
||||
public int currentSignIndex;
|
||||
|
||||
public void Display()
|
||||
{
|
||||
Learnable currentSign = signs[currentSignIndex];
|
||||
videoPlayer.aspectRatio = VideoAspectRatio.FitInside;
|
||||
videoPlayer.clip = currentSign.clip;
|
||||
videoPlayer.Play();
|
||||
|
||||
feedbackProgressObject.SetActive(!isPreview);
|
||||
previewMessage.SetActive(isPreview);
|
||||
|
||||
List<Sprite> sprites = new List<Sprite>() { currentSign.image };
|
||||
if (currentSign.handGuide != null)
|
||||
sprites.Add(currentSign.handGuide);
|
||||
|
||||
foreach (Sprite s in sprites)
|
||||
{
|
||||
GameObject sprite = GameObject.Instantiate(signImagePrefab, signImageContainer);
|
||||
sprite.GetComponent<Image>().sprite = s;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This function is called when the pause-button is pressed on the video.
|
||||
/// It switches between playing and pausing the video.
|
||||
/// It then makes the button invisible when the video is playing, or visible when it's paused.
|
||||
/// </summary>
|
||||
public void TogglePlayPause()
|
||||
{
|
||||
if (!videoPlayer.isPlaying)
|
||||
{
|
||||
// Play video and switch sprite of button
|
||||
playButton.sprite = pauseSprite;
|
||||
videoPlayer.Play();
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
// Pause video and and switch sprite of button
|
||||
playButton.sprite = playSprite;
|
||||
videoPlayer.Pause();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user