IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Unity 视频控制暂停播放以及滑动条拖拽(笔记) -> 正文阅读

[游戏开发]Unity 视频控制暂停播放以及滑动条拖拽(笔记)


3d物体播放视频

  1. 创建一个cube,在cube下创建canvas,然后调到世界,并调整位置和大小,

  2. cube上添加audio source组件和video player组件

  3. 在创建两个image,image下面创建text文本,分别为暂停和播放,然后再image上添加button组件
    在这里插入图片描述

  4. 创建脚本,写代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Video;
using UnityEngine.UI;

public class AudioPlayer : MonoBehaviour {
    VideoPlayer videoPlayer;
    Slider slider;
	// Use this for initialization
	void Start () {
        videoPlayer = GetComponent<VideoPlayer>();
        slider = transform.GetChild(0).GetChild(0).GetComponent<Slider>();
        slider.maxValue=(float)videoPlayer.clip.length;//视频长度
	}
	public void Play()
    {
        videoPlayer.Play();
    }
    public void Pause()
    {
        videoPlayer.Pause();
    }
    public void ChangeFloat(float t)
    {
        if (SliderPointer.isClick)
        {
            videoPlayer.time = slider.value;
        }
        
    }
    // Update is called once per frame
    void Update () {
        if (!SliderPointer.isClick)
        {
            slider.value = (float)videoPlayer.time;
        }
        
    }
}

  1. 再创建一个脚本挂在slider上,
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;

public class SliderPointer : MonoBehaviour,IPointerDownHandler,IPointerUpHandler {
    public static bool isClick = false;
    public void OnPointerDown(PointerEventData eventData)
    {
        isClick = true;
    }

    public void OnPointerUp(PointerEventData eventData)
    {
        isClick = false;
    }

    // Use this for initialization
    void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {
		
	}
}

  1. 写好后,把全景视频拖拽,button事件拖拽还有slider上面的拖拽
  2. 效果

3d物体播放视频

UI播放视频

  1. 创建rawimage,添加audio source组件和video player组件,然后把视频拖进去

rawimage和image的区别
image贴图类型只能是精灵图片
rawimage什么贴图都可以

  1. 要想承接播放一个视频,就要在assets创建一个Render Texture,然后拖拽到rawimage属性面板里的Texture里.
    在这里插入图片描述
  2. 把刚创建的Render Texture也要拖拽到video player组件属性面板里的相应位置
    在这里插入图片描述
    运行后就看到视频了,但是会发现视频并没有铺满image,就要去写脚本
  3. 把脚本挂在canvas上
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Video;

public class RawImageOaly : MonoBehaviour {
    public RawImage rawImage;
    private VideoPlayer videoPlayer;
	// Use this for initialization
	void Start () {
        videoPlayer = rawImage.GetComponent<VideoPlayer>();
        rawImage.texture = videoPlayer.texture;
	}
	public void Play()
    {
        videoPlayer.Play();
    }
    public void Pause()
    {
        videoPlayer.Pause();
    }
    
    // Update is called once per frame
    void Update () {
        rawImage.texture = videoPlayer.texture;
    }
}

5.写好代码后回到unity拖拽后运行,就正常播放了,然后添加两个按钮,控制视频的暂停和播放,和上面的一样就不再细述了


  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-07-20 19:15:03  更:2022-07-20 19:15:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 11:02:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码