当前位置: 首页 > article >正文

unity学习31:Video Player 视频播放相关基础

目录

1 新增Video Player的 component

2 导入视频到Asset里

3 拖入到 video player的 video clip里去即可

4 渲染模式

4.1 多种渲染模式

4.2  如果选择 Render Texture模式

4.3 然后把Render Texture 拖到游戏里的 gameObject上面

5 在UI上显示

5.1 创建UI

5.2 在UI上播放

6 使用脚本播放Video

6.1 创建脚本,挂到对应的 gameObject上

6.2 代码测试

6.2.1 类型和音频有差别

6.2.2 VideoPlayer  并不需要指定clip为V1? 待查

6.2.3 VideoPlayer的 Pause() 以后继续 Play()即可,没有UnPause() 方法

6.2.4 详细代码


1 新增Video Player的 component

  • 播放视频需要Video Player
  • gameObject上增加一个 Video Player的 component

2 导入视频到Asset里

  • 下载video后拖过去进行
  • MP4是可以的

3 拖入到 video player的 video clip里去即可

4 渲染模式

4.1 多种渲染模式

  •  Render Texture
  •  camera for plane
  • camera  near plane
  • material Override
  • API only

4.2  如果选择 Render Texture模式

  • Render Mode选择 Render Texture
  • 新建1个Render Texture
  • 拖入到 target Texture

4.3 然后把Render Texture 拖到游戏里的 gameObject上面

  • 然后把Render Texture 拖到游戏里的 gameObject上面

5 在UI上显示

5.1 创建UI

  • 创建UI
  • UI / Raw Image

5.2 在UI上播放

  • 也是在纹理里拖入 rander Texture
  • 选择2D模式,就可以播放了

6 使用脚本播放Video

6.1 创建脚本,挂到对应的 gameObject上

创建脚本,挂到对应的 gameObject上,比如之前的这个竖着的板子上

6.2 代码测试

6.2.1 类型和音频有差别

  •     private VideoPlayer player1;
  •     private AudioSource1player1;

6.2.2 VideoPlayer  并不需要指定clip为V1? 待查

        player1=GetComponent<VideoPlayer>();

        // 不需要指定clip为V1?

        //player1.clip=v1;

        //player1.loop=true;

        //player1.volume=0.5f;  

        player1.Play();    

6.2.3 VideoPlayer的 Pause() 以后继续 Play()即可,没有UnPause() 方法

  •  //继续播放
  • player1.Play();

6.2.4 详细代码

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

public class TestVideo : MonoBehaviour
{

    //声明VideoClip
    public VideoClip v1;  //绑定外部clip

    //定义播放器组件
    private VideoPlayer player1;


    // Start is called before the first frame update
    void Start()
    {
        player1=GetComponent<VideoPlayer>();
        // 不需要指定clip为V1?
        //player1.clip=v1;
        //player1.loop=true;
        //player1.volume=0.5f;   
        player1.Play();    

    }

    // Update is called once per frame
    void Update()
    {
    if(Input.GetKeyDown(KeyCode.Space))
        {
            if(player1.isPlaying==true)
            {
                //暂停播放
                player1.Pause();
                //player1.Stop();

            }
            else
            {
                //继续播放
                player1.Play();
                //player1.Play();
            }
        }

        
    }
}


http://www.kler.cn/a/537118.html

相关文章:

  • npm安装electron安装报错
  • 采用idea中的HTTP Client插件测试
  • Node.js 实现简单爬虫
  • 使用 Python 编程语言来实现机器学习小项目教程案例
  • 瞬态分析中的时域分析与频域分析:原理、对比与应用指南
  • DeepSeek本地部署保姆级教程
  • 【Axure教程】标签版分级多选下拉列表
  • makefile 的strip,filter,ifeq,ifneq基础使用
  • 朝天椒USB服务器在湖南电力的应用案例
  • docker run和docker exec的区别及开机启动
  • Centos执行yum命令报错
  • NSS-DAY1
  • 解决错误:CondaHTTPError: HTTP 000 CONNECTION FAILED for url
  • openCV函数使用(二)
  • mac环境下,ollama+deepseek+cherry studio+chatbox本地部署
  • 基于Spring Boot的历史馆藏系统设计与实现(LW+源码+讲解)
  • 通信易懂唠唠SOME/IP——SOME/IP-SD服务发现阶段和应答行为
  • 【大模型】DeepSeek与chatGPT的区别以及自身的优势
  • 软考教材重点内容 信息安全工程师 第15章 网络安全主动防御技术与应用
  • MySQL中datetime类型23:59:59变成下一天的00:00:00
  • 苍穹外卖-day12(工作台、数据导出)
  • 开箱即用的.NET MAUI组件库 V-Control 发布了!
  • 机器学习数学基础:17.矩阵初等变换
  • TCP/IP 邮件
  • Redis 深度解析 —— 高频面试题与核心知识点
  • Android设置个性化按钮按键的快捷启动应用