UGUI slider控制视频进度

概述

功能:显示视频进度;改变视频进度。

获取 进度条的拖动状态

脚本挂载到进度条对象上

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);
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值