当前位置:网站首页>自用工具 猴子都会用的unity视频播放器
自用工具 猴子都会用的unity视频播放器
2022-06-28 02:36:00 【饿掉鱼】
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Video;
public class Movie : MonoBehaviour
{
[Tooltip("在程序开始运行时是否隐藏UI,false为隐藏")] public bool OpenMovie_Awake = true;
[Header("Buttons")]
[Tooltip("播放按钮")] public Button Start;
[Tooltip("播放速度+")] public Button SpeedUp;
[Tooltip("播放速度-")] public Button SpeedDown;
[Header("UI")]
[Tooltip("输入的VideoPlayer")] public VideoPlayer VideoPlayers;
[Tooltip("播放速度Text")] public Text SpeedShow;
[Tooltip("播放时间与总时长Text")] public Text TimeShow;
[Header("滑动条。需要在滑动条处增添滑动事件")]
[Tooltip("音量条")] public Slider Volume;
[Tooltip("进度条")] public Slider Times;
[Header("视频播放速度")]
[Range(0f, 1f)]
public float PlayBackSpeedChange = 0.5f;//每次调整的播放速度
[Range(0f, 5f)]
public float PlayBackSpeedMax = 3f;//最高播放速度
public static int PlayingURL;//当前播放的URL
public static string[] URL = { @"file://D:/Test/Movie01.mov"};//视频集
void Awake()
{
VideoPlayers.GetComponent<VideoPlayer>().url = URL[0];
AddListerer();
_MovieOpend = true;
}
public void Update()//播放速度文本这里调节
{
SpeedShow.text = "播放速度 X" + VideoPlayers.playbackSpeed.ToString("#0.0");
TimeShow.text = ($"{(int)VideoPlayers.time / 60}:{(VideoPlayers.time % 60).ToString("00")}/{(int)VideoPlayers.length / 60}:{(VideoPlayers.length % 60).ToString("00")}");
if (VideoPlayers.frameRate / VideoPlayers.frameCount > 0)//进度条
{
if (!Input.GetMouseButton(0) || _volumedraging)
Times.value = (float)VideoPlayers.time / (float)VideoPlayers.length;
}
if (Input.GetMouseButtonUp(0)) _volumedraging = false;//防止滑动音量条锁进度条
}
/// <summary>
/// 进度条
/// </summary>
public void Ondrag()
{
if (Input.GetMouseButton(0) && !_volumedraging)
VideoPlayers.time = Times.value * (float)VideoPlayers.length;
}
/// <summary>
/// 音量
/// </summary>
public void VolumeDrag()
{
_volumedraging = true;
VideoPlayers.SetDirectAudioVolume(0, Volume.value);
}
/// <summary>
/// 为所有按钮添加监听器
/// </summary>
void AddListerer()
{
Start.onClick.AddListener(() =>//播放
{
if (_Pauseing)
{
VideoPlayers.playbackSpeed = 1f;
Start.gameObject.transform.Find("Text").GetComponent<Text>().text = "暂停";
_Pauseing = false;
}
else
{
VideoPlayers.playbackSpeed = 0f;
Start.gameObject.transform.Find("Text").GetComponent<Text>().text = "播放";
_Pauseing = true;
}
});
SpeedUp.onClick.AddListener(() =>
{
if (VideoPlayers.playbackSpeed < PlayBackSpeedMax)
VideoPlayers.playbackSpeed += PlayBackSpeedChange;
});
SpeedDown.onClick.AddListener(() =>
{
if (VideoPlayers.playbackSpeed > 0f)
VideoPlayers.playbackSpeed -= PlayBackSpeedChange;
});
}
bool _MovieOpend;
bool _Pauseing = false;
bool _volumedraging;
}
效果图
边栏推荐
- Agileplm exception resolution session
- nn. Parameter and torch nn. Init series of functions to initialize model parameters
- 访问网站提示:您未被授权查看该页恢复办法
- ETCD数据库源码分析——集群间网络层服务端RaftHandler
- 导致系统性能失败的十个原因
- Apache——阿帕奇简介
- 国泰君安证券靠谱吗?开证券账户安全吗?
- 【小程序】使用font-awesome字体图标的解决文案(图文)
- 【PaddleDetection】ModuleNotFoundError: No module named ‘paddle‘
- 文件的相对路径写法
猜你喜欢

Severe Tire Damage:世界上第一个在互联网上直播的摇滚乐队

Dataloader parameter collate_ Use of FN

Tardigrade:Trino 解决 ETL 场景的方案

A16z:元宇宙解锁游戏基础设施中的新机遇

idea自动生成代码

为什么OpenCV计算的帧率是错误的?

Basic operation of stack (implemented in C language)

2022危险化学品经营单位安全管理人员特种作业证考试题库模拟考试平台操作

Build your own website (17)

View the SQL execution plan according to explain and optimize the SQL
随机推荐
What are the good practices of cloud cost optimization?
INFO:&nbsp;HHH000397:&nbsp;Using…
《Go题库·12》slice和array区别?
Build your own website (17)
Relative path writing of files
Why is the service implementation class always red
collections. Use of defaultdict()
windows 2003 64位系统php运行报错:1% 不是有效的 win32 应用程序
nn. Parameter and torch nn. Init series of functions to initialize model parameters
基于流的深度生成模型
Artifact for converting pcap to JSON file: joy (installation)
SSH框架的搭建(上)
nn.Parameter和torch.nn.init系列函数给模型参数初始化
同样是MB,差距怎么这么大呢?
2022年R1快開門式壓力容器操作特種作業證考試題庫及答案
The first in the industry! MOS sub evaluation model for subjective video quality experience that can run on mobile devices!
劲爆!YOLOv6又快又准的目标检测框架开源啦(附源代码下载)
RichView TRVStyle
ARM Development Studio build编译报错
[games] Parkour