Unity 读取外配-第三集-网络下载形式读取外部图片(简单但详细版)

本文主要是介绍Unity 读取外配-第三集-网络下载形式读取外部图片(简单但详细版),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

需求:我有一个文件夹,里面有好多好多图片,我想软件自己读出来

一、具体逻辑

1.写出你希望读取的文件夹的地址

2.读取这个文件夹里所有的文件名称

3.把这个文件夹里名称中和图片有关的文件名找出来

4.用代码在unity里创建一个图片

5.用加载的图片替换掉创建的这个图片,并调整大小

二、逻辑实现部分

读取部分(1,2,3条):
 void Start(){string[] fileName ; //建一个string存所有的名字//获取应用里"streamingAssetsPath/0"文件夹下得文件名称fileName = Directory.GetFiles((Application.streamingAssetsPath + "/0"));//如果获取到了,把和图片有关的挑出来if (fileName.Length != 0){for (int i = 0; i < fileName.Length; i++){//获取文件的后缀,把是图片的挑出来并加载出来string tmp = Path.GetExtension(fileName[i]); if (tmp == ".jpg" || tmp == ".png" || tmp == ".gif" || tmp == ".bmp"){StartCoroutine(ReadPictureName(fileName[i])); //加载的方法,在下文}}}}
加载图片部分(4条):

加载图片部分(5条):
    //加载图片public Image image;//在外面创建的图片拖进来IEnumerator ReadPictureName(string url) {//“在url这个地址下有个图片,请下载下来”这件事写成一个要求UnityWebRequest request = UnityWebRequestTexture.GetTexture(url);yield return request.SendWebRequest();   //把上面这个要求发出去,并等待结果//如果下载已经完成if (request.isDone) {if (request.isNetworkError || request.isHttpError)  //如果网络错误,或者地址错误{Debug.Log(request.error);       //输出这个错误}else     //如果没错{//建一个2D图片,把request里的图片下载下来放进去Texture2D texture2d = DownloadHandlerTexture.GetContent(request);    //建一个sprite格式的图片,把下载下来的图片转换格式,放进去;括号里分别是(转换的对象,转换出来的图片的坐标,和宽高,设置物体自身的坐标原点位置,00就是左下角,0.5,0.5就是中间,1,1就是右上角)Sprite sprite = Sprite.Create(texture2d, new Rect(0, 0, texture2d.width, texture2d.height), new Vector2(0.5f, 0.5f));//把Image里的图片替换掉image.sprite = sprite;}}}

三、补充需求

我有一个文件夹,文件夹里有很多文件夹,我希望把每一个文件夹里的图片都读出来

重点语法:获取地址下所有文件夹的地址

string[] p = Directory.GetDirectories(path);

在之前的基础上增加逻辑:

1.获取文件夹内所有的地址

2.如果这些地址的后缀是图片格式

3.读取这些图片

四、补充需求的代码

using System.IO;
using UnityEngine;
using UnityEngine.Networking;public class Tool_ReadPics : MonoBehaviour
{string path;public List<Sprite> sprites;void Start(){path = Application.streamingAssetsPath + "/photos";StartCoroutine(ReadFolders(path));}IEnumerator ReadFolders(string path) {//获取path下的所有地址string[] allPath = Directory.GetFiles(path);//判断这些地址是否是图片格式foreach (string singlePath in allPath){if(Path.GetExtension(singlePath)==".jpg"|| Path.GetExtension(singlePath) == ".png"){yield return StartCoroutine(GetImageFromIO(singlePath));}}//获取地址下所有文件夹的地址string[] p = Directory.GetDirectories(path);if (p.Length == 0){}else{foreach (string p0 in p){yield return StartCoroutine(ReadFolders(p0));}}}//读取图片IEnumerator GetImageFromIO(string path) {UnityWebRequest request = UnityWebRequestTexture.GetTexture(path);yield return request.SendWebRequest();if (request.isDone){if (request.isNetworkError || request.isHttpError){Debug.Log(request.error);}else{Texture2D texture2d = DownloadHandlerTexture.GetContent(request);Sprite sprite = Sprite.Create(texture2d, new Rect(0, 0, texture2d.width, texture2d.height), new Vector2(0.5f, 0.5f));sprites.Add(sprite);}}}
}

这篇关于Unity 读取外配-第三集-网络下载形式读取外部图片(简单但详细版)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/787423

相关文章

史上最全nginx详细参数配置

《史上最全nginx详细参数配置》Nginx是一个轻量级高性能的HTTP和反向代理服务器,同时也是一个通用代理服务器(TCP/UDP/IMAP/POP3/SMTP),最初由俄罗斯人IgorSyso... 目录基本命令默认配置搭建站点根据文件类型设置过期时间禁止文件缓存防盗链静态文件压缩指定定错误页面跨域问题

nginx负载均衡及详细配置方法

《nginx负载均衡及详细配置方法》Nginx作为一种高效的Web服务器和反向代理服务器,广泛应用于网站的负载均衡中,:本文主要介绍nginx负载均衡及详细配置,需要的朋友可以参考下... 目录一、 nginx负载均衡策略1.1 基本负载均衡策略1.2 第三方策略1.3 策略对比二、 nginx配置2.1

springboot集成Lucene的详细指南

《springboot集成Lucene的详细指南》这篇文章主要为大家详细介绍了springboot集成Lucene的详细指南,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起... 目录添加依赖创建配置类创建实体类创建索引服务类创建搜索服务类创建控制器类使用示例以下是 Spring

Flutter实现文字镂空效果的详细步骤

《Flutter实现文字镂空效果的详细步骤》:本文主要介绍如何使用Flutter实现文字镂空效果,包括创建基础应用结构、实现自定义绘制器、构建UI界面以及实现颜色选择按钮等步骤,并详细解析了混合模... 目录引言实现原理开始实现步骤1:创建基础应用结构步骤2:创建主屏幕步骤3:实现自定义绘制器步骤4:构建U

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

如何使用 Python 读取 Excel 数据

《如何使用Python读取Excel数据》:本文主要介绍使用Python读取Excel数据的详细教程,通过pandas和openpyxl,你可以轻松读取Excel文件,并进行各种数据处理操... 目录使用 python 读取 Excel 数据的详细教程1. 安装必要的依赖2. 读取 Excel 文件3. 读

关于MongoDB图片URL存储异常问题以及解决

《关于MongoDB图片URL存储异常问题以及解决》:本文主要介绍关于MongoDB图片URL存储异常问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录MongoDB图片URL存储异常问题项目场景问题描述原因分析解决方案预防措施js总结MongoDB图

Spring Boot读取配置文件的五种方式小结

《SpringBoot读取配置文件的五种方式小结》SpringBoot提供了灵活多样的方式来读取配置文件,这篇文章为大家介绍了5种常见的读取方式,文中的示例代码简洁易懂,大家可以根据自己的需要进... 目录1. 配置文件位置与加载顺序2. 读取配置文件的方式汇总方式一:使用 @Value 注解读取配置方式二