概述
功能:显示视频进度;改变视频进度。
获取 进度条的拖动状态
脚本挂载到进度条对象上
using UnityEngine;
using UnityEngine.EventSystems;
public class SliderControl : MonoBehaviour, IDragHandler, IEndDragHandler, IBeginDragHandler
{
//是否拖拽进度条(滑动条)
public bool isDragMove;
public void OnDrag(PointerEventData eventData)
{
isDragMove = true;
}
public void OnEndDrag(PointerEventData eventData)
{
isDragMove = false;
}
public void OnBeginDrag(PointerEventData eventData)
{
isDragMove = true;
}
}
进度更新 和 改变视频进度
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Video;
public class VideoControl : MonoBehaviour
{
public VideoPlayer videoPlayer;
public SliderControl sliderControl;
public Slider slider;
bool isPrepare = false;//视频是否准备好
void Start()
{
videoPlayer.Prepare();
videoPlayer.prepareCompleted += VideoPlayer_prepareCompleted;
slider.onValueChanged.AddListener(MoveSlider);
}
private void VideoPlayer_prepareCompleted(VideoPlayer source)
{
isPrepare = true;
}
private void MoveSlider(float arg0)
{
//拖动进度条的时候 执行
if (isPrepare && sliderControl.isDragMove)
{
videoPlayer.time = videoPlayer.length * arg0;
}
}
void Update()
{
if (Input.GetKeyDown(KeyCode.P) && isPrepare)
videoPlayer.Play();
//更新数值 不执行拖动事件
if (!sliderControl.isDragMove && isPrepare)
{
slider.value = (float)(videoPlayer.time / videoPlayer.length);
}
}
}