using RenderHeads.Media.AVProVideo; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class OptionsPlaybackSpeedPage : MonoBehaviour { [Header("Media Player")] [SerializeField] private MediaPlayer _MediaPlayer; [Header("Options Menu")] [SerializeField] private OptionsMenu _OptionsMenu; [Header("Content")] [SerializeField] private Transform _Content; [SerializeField] private RectTransform _ScrollViewRectTransform; [SerializeField] private RectTransform _ViewportRectTransform; [SerializeField] private GameObject _PlaybackSpeedLinePrefab; private string m_SetupForVideoPath; private class CPlaybackSpeedSet { public GameObject m_LineGO = null; public string m_DisplayName = ""; public float m_fRate = 1.0f; } private List m_lPlaybackSpeedSets = new List(); private bool m_bSetsDirty = false; void Start() { // Add defaults AddPlaybackSpeedSet( "0.25", 0.25f, false ); AddPlaybackSpeedSet( "0.5", 0.5f, false ); AddPlaybackSpeedSet( "0.75", 0.75f, false ); AddPlaybackSpeedSet( "Normal", 1.0f, true ); AddPlaybackSpeedSet( "1.25", 1.25f, false ); AddPlaybackSpeedSet( "1.5", 1.5f, false ); AddPlaybackSpeedSet( "1.75", 1.75f, false ); } void Update() { if( m_bSetsDirty ) { UpdateSets(); m_bSetsDirty = false; } } private void AddPlaybackSpeedSet( string title, float fRate, bool bEnabled ) { GameObject newLineGO = GameObject.Instantiate( _PlaybackSpeedLinePrefab, _Content ); if( newLineGO != null ) { // Setup text Transform titleTransform = newLineGO.transform.Find( "TitleText" ); Text titleText = ( titleTransform != null ) ? titleTransform.GetComponent() : null; if( titleText != null ) { titleText.text = title; } // Tick icon if( bEnabled ) { Transform tickIconTransform = newLineGO.transform.Find( "TickIcon" ); Image tickIconImage = ( tickIconTransform != null ) ? tickIconTransform.GetComponent() : null; if( tickIconImage != null ) { tickIconImage.enabled = true; } } // On click if( _OptionsMenu ) { Button button = newLineGO.GetComponent