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

相关文章

SpringBoot改造MCP服务器的详细说明(StreamableHTTP 类型)

《SpringBoot改造MCP服务器的详细说明(StreamableHTTP类型)》本文介绍了SpringBoot如何实现MCPStreamableHTTP服务器,并且使用CherryStudio... 目录SpringBoot改造MCP服务器(StreamableHTTP)1 项目说明2 使用说明2.1

MySQL进行数据库审计的详细步骤和示例代码

《MySQL进行数据库审计的详细步骤和示例代码》数据库审计通过触发器、内置功能及第三方工具记录和监控数据库活动,确保安全、完整与合规,Java代码实现自动化日志记录,整合分析系统提升监控效率,本文给大... 目录一、数据库审计的基本概念二、使用触发器进行数据库审计1. 创建审计表2. 创建触发器三、Java

Windows环境下解决Matplotlib中文字体显示问题的详细教程

《Windows环境下解决Matplotlib中文字体显示问题的详细教程》本文详细介绍了在Windows下解决Matplotlib中文显示问题的方法,包括安装字体、更新缓存、配置文件设置及编码調整,并... 目录引言问题分析解决方案详解1. 检查系统已安装字体2. 手动添加中文字体(以SimHei为例)步骤

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

Spring boot整合dubbo+zookeeper的详细过程

《Springboot整合dubbo+zookeeper的详细过程》本文讲解SpringBoot整合Dubbo与Zookeeper实现API、Provider、Consumer模式,包含依赖配置、... 目录Spring boot整合dubbo+zookeeper1.创建父工程2.父工程引入依赖3.创建ap

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

创建Java keystore文件的完整指南及详细步骤

《创建Javakeystore文件的完整指南及详细步骤》本文详解Java中keystore的创建与配置,涵盖私钥管理、自签名与CA证书生成、SSL/TLS应用,强调安全存储及验证机制,确保通信加密和... 目录1. 秘密键(私钥)的理解与管理私钥的定义与重要性私钥的管理策略私钥的生成与存储2. 证书的创建与

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

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