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

相关文章

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

使用Python实现可恢复式多线程下载器

《使用Python实现可恢复式多线程下载器》在数字时代,大文件下载已成为日常操作,本文将手把手教你用Python打造专业级下载器,实现断点续传,多线程加速,速度限制等功能,感兴趣的小伙伴可以了解下... 目录一、智能续传:从崩溃边缘抢救进度二、多线程加速:榨干网络带宽三、速度控制:做网络的好邻居四、终端交互

SpringBoot整合liteflow的详细过程

《SpringBoot整合liteflow的详细过程》:本文主要介绍SpringBoot整合liteflow的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋...  liteflow 是什么? 能做什么?总之一句话:能帮你规范写代码逻辑 ,编排并解耦业务逻辑,代码

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

HTML img标签和超链接标签详细介绍

《HTMLimg标签和超链接标签详细介绍》:本文主要介绍了HTML中img标签的使用,包括src属性(指定图片路径)、相对/绝对路径区别、alt替代文本、title提示、宽高控制及边框设置等,详细内容请阅读本文,希望能对你有所帮助... 目录img 标签src 属性alt 属性title 属性width/h

CSS3打造的现代交互式登录界面详细实现过程

《CSS3打造的现代交互式登录界面详细实现过程》本文介绍CSS3和jQuery在登录界面设计中的应用,涵盖动画、选择器、自定义字体及盒模型技术,提升界面美观与交互性,同时优化性能和可访问性,感兴趣的朋... 目录1. css3用户登录界面设计概述1.1 用户界面设计的重要性1.2 CSS3的新特性与优势1.