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; /// /// Reference to instructional video player /// public VideoPlayer videoPlayer; public Image playButton; public RawImage webcamScreen; /// /// Reference to the image for displaying the current words sprite /// public Transform signImageContainer; public GameObject signImagePrefab; /// /// Reference to the feedback field /// public TMP_Text feedbackText; /// /// Reference to the progress bar /// public Slider feedbackProgressBar; /// /// Reference to the progress bar image, so we can add fancy colors /// public Image feedbackProgressImage; public List 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 sprites = new List() { currentSign.image }; if (currentSign.handGuide != null) sprites.Add(currentSign.handGuide); foreach (Sprite s in sprites) { GameObject sprite = GameObject.Instantiate(signImagePrefab, signImageContainer); sprite.GetComponent().sprite = s; } } /// /// 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. /// 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(); } } }