UnityWebRequest下载图片和视频进行使用

2023-11-06

利用空余时间写一下网络下载资源使用,进行熟悉一些UnityWebRequest,unity已经抛弃了WWW,这里很简单只需要把脚本挂载就行,所有的界面操作都通过代码实现。 资源的下载,删除都做了相应的操作

 

using System.Collections;
using System.IO;
using UnityEditor;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.Video;

namespace AssetDatabaseTest
{
    public class UnityWebRequestTest : MonoBehaviour
    {
        private void Start()
        {
            //下载视频
            StartCoroutine(Download());
            // DonLoadImage
            StartCoroutine(DonLoadImage());
        }

        IEnumerator Download()
        {
            var goTest = new GameObject
            {
                name = "UnityWebRequest"
            };
            var unityWebRequest = UnityWebRequest.Get("https://klxxcdn.oss-cn-hangzhou.aliyuncs.com/histudy/hrm/media/bg3.mp4");
            yield return unityWebRequest.SendWebRequest();
            if (unityWebRequest.error!=null)
            {
                Debug.Log("通信中");
                yield return unityWebRequest;
            }
            var  downloadHandler=unityWebRequest.downloadHandler;
            if (!downloadHandler.isDone)
            {
                Debug.Log("下载中");
                yield return downloadHandler;
            }else
            {
                Debug.Log("下载成功");
                var videoPlayer=goTest.AddComponent<VideoPlayer>();
                videoPlayer.renderMode = VideoRenderMode.CameraFarPlane;
                videoPlayer.targetCamera=Camera.main;
                Debug.Log(downloadHandler.data);
                // if (!File.Exists(Application.dataPath + "/Resources/YourVideoName.mp4"))
                    yield return  File.WriteAllBytesAsync(Application.dataPath + "/Resources/YourVideoName.mp4",
                        downloadHandler.data);
                    AssetDatabase.Refresh();
                    videoPlayer.clip= Resources.Load<VideoClip>("YourVideoName");
                // AssetDatabase.LoadAssetAtPath<VideoClip>(Application.dataPath + "/YourVideoName.mp4");
                videoPlayer.Play();
                videoPlayer.isLooping = true;
            }
        }

        IEnumerator DonLoadImage()
        {
            string url = "http://www.baidu.com/img/bdlogo.png";
           
            var unityWebRequest =  UnityWebRequestTexture.GetTexture(url);
            yield return unityWebRequest.SendWebRequest();
            if (unityWebRequest.error != null)
            {
                Debug.Log("请求中");
                yield return unityWebRequest;
            }
            var downloadHandler = unityWebRequest.downloadHandler;
            if (!downloadHandler.isDone)
            {
                Debug.Log("下载中");
                yield return downloadHandler;
            }
            else
            {
                Debug.Log("下载完成");
                var handlerData = downloadHandler;
                yield return File.WriteAllBytesAsync(Application.dataPath + "/Resources/YourImage.png", handlerData.data);
                var g= GameObject.CreatePrimitive(PrimitiveType.Capsule);
                g.GetComponent<MeshRenderer>().sharedMaterial = new Material( g.GetComponent<MeshRenderer>().sharedMaterial);
                // g.GetComponent<MeshRenderer>().sharedMaterial.color=Color.blue;
                AssetDatabase.Refresh();
                g.GetComponent<MeshRenderer>().sharedMaterial.mainTexture=
                    Resources.Load<Texture>("YourImage");

            }
            yield return null;
        }

        private void OnDestroy()
        {
            File.Delete(  Application.dataPath + "/Resources/YourImage.png");
            File.Delete(  Application.dataPath + "/Resources/YourVideoName.mp4");
            AssetDatabase.Refresh();
        }
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UnityWebRequest下载图片和视频进行使用 的相关文章

  • kafka如何保证消息不被重复消费

    1 原因 1 kafka有个offset的概念 当每个消息被写进去后 都有一个offset 代表他的序号 然后consumer消费该数据之后 隔一段时间 会把自己消费过的消息的offset提交一下 代表我已经消费过了 下次我要是重启 就会继

随机推荐

  • 模式识别学习初感悟

    学习模式识别已经快一个月了 从开始的混沌迷茫到现在的小有感觉 不能说自己进步了很多 只能说自己没有虚度这一个月的时光 下面相对自己这一个月的学习做一个总结 希望各位老师同学能多提宝贵意见 毕竟学术要在交流中才能发展 考研的生活结束后 顺利进
  • HTML中使用input type="file"时,不允许修改value属性值

    在HTML中使用
  • C++基础知识 - auto_ptr智能指针 (C++98)

    auto ptr 使用详解 C 98 auto ptr 是c 98定义的智能指针模板 其定义了管理指针的对象 可以将new 获得 直接或间接 的地址赋给这种对象 当对象过期时 其析构函数将使用delete 来释放内存 用法 头文件 incl
  • “华为杯”研究生数学建模竞赛2020年-【华为杯】B题:汽油辛烷值优化建模(附获奖论文和python代码实现)

    目录 摘 要 1 问题重述 1 1 问题背景 1 2 问题重述 2 模型假设 3 符号说明
  • 据说程序员节 随手记录下matlab的tan和atan(反正切 arctan函数)

    matlab求正切 反正切 随笔 tan函数测试 tan 0 0 tan 45 1 6198 tan pi 4 1 可以看出 matlab的输入单位是rad弧度 弧度和角度的换算单位为 1 rad 180 pi o 1o 1 pi 180
  • 黑客入门学习方法和盗号思路 别把这个想得很神秘

    大神请绕过 还有盗号的一些方法和思路 骗子太多 别上当 此文只是希望更多的人了解 更能很好的保护好自身虚拟财产 黑客 看着很神秘 其实都是普通人 工作不同而已 当然 有的很厉害的 他们智商都很高 这里不做讨论 就说说普通人如何学习这一块 入
  • JAVA系列教程

    1 Java快速教程 http www cnblogs com vamei archive 2013 03 31 2991531 html 2 Java 教程 http www runoob com java java tutorial h
  • jquery-动态添加,删除

    前言 jquery的动态添加和删除 以及显示他的数量 效果图 实现代码
  • ChatHub

    1写在前面 最近忙的不行 根本没有时间打开电脑 随着GPT 4和new bing的发布 真的可以说是AI的iphone时刻到来了 现在也是越来越多的网站接入了AI 以后人人都可以是程序员了 New Bing在GPT 4的加持下 功力大增 搜
  • 重学二、函数指针&指针运算

    目录 1 多级指针 2 数组与数组指针 3 采用指针遍历数组 4 循环时给数组赋值 5 指针类型有何用 7 函数指针 1 多级指针 int main int num 66 int pointer num 一级指针 int sec point
  • 总结:修改Anaconda中的Jupyter Notebook默认工作路径的三种方式

    总结 修改Anaconda中的Jupyter Notebook默认工作路径的三种方式 方式1 打开Windows的cmd 在cmd中输入jupyter notebook generate config如下图 可以看到路径为D Users 找
  • Qt之QTableView 获取当前选中行

    QModelIndexList list ui gt tableView gt selectedIndexes if list count lt 0 return QModelIndex index ui gt tableView gt s
  • ElasticSearch讲解——基础概念

    一 什么是ElasticSearch ElasticSearch以下简称为ES ES是一款基于Lucene的搜索服务器 它提供了一个分布式多用户能力的全文搜索引擎 并且基于RESTful web接口对外提供检索服务能力 Elasticsea
  • 展望2020

    区块链行业在2019年末迎来高光时刻 国家明确指出把区块链作为核心技术自主创新重要突破口 加快推动区块链技术和产业创新发展 新年伊始 陀螺财经邀请到数位学术圈 产业圈的相关人士 运用他们的专业知识 行业实践 剖析2020年行业的发展动向 谈
  • 【算法】链表

    算法 链表 反转链表 移除链表 交换链表 链表相交 删除链表中的倒数第N个节点 环形链表 反转链表 反转链表是指将单向链表的顺序逆转 即原本的链表方向由头节点指向尾节点 变为尾节点指向头节点 在 JavaScript 中 可以通过修改节点的
  • KEIL的下载图标是灰色的怎么办

    今天用cubemx配置好之后 generate发现下载图表是灰色的 解决方法 魔术棒下面的debug选项 有个右下角有个空手动输入 MPU
  • mock测试工具

    什么是mock测试 mock常见场景 mock常用工具 实战 1 什么是mock测试 mock测试就是对于某些不容易构造或者不容易获取的对象 用一个虚拟的对象来创建以便测试的测试方法 2 mock常见场景 1 无法控制第三方系统某接口的返回
  • PTA 7-100 敲笨钟 (20 分)(C语言版)

    微博上有个自称 大笨钟V 的家伙 每天敲钟催促码农们爱惜身体早点睡觉 为了增加敲钟的趣味性 还会糟改几句古诗词 其糟改的方法为 去网上搜寻压 ong 韵的古诗词 把句尾的三个字换成 敲笨钟 例如唐代诗人李贺有名句曰 寻章摘句老雕虫 晓月当帘
  • 测试开源C#人脸识别模块ViewFaceCore(2:人脸关键点定位器和活体检测)

    ViewFaceCore模块中的FaceLandmarker类支持识别人脸关键点 也即人脸上的关键位置的坐标 其中主要调用Mark函数返回图片中指定人脸的关键点位置集合 该类需配合FaceDetector类共同使用 FaceLandmark
  • UnityWebRequest下载图片和视频进行使用

    利用空余时间写一下网络下载资源使用 进行熟悉一些UnityWebRequest unity已经抛弃了WWW 这里很简单只需要把脚本挂载就行 所有的界面操作都通过代码实现 资源的下载 删除都做了相应的操作 using System Colle