unity加载服务器文件夹,Unity如何加载本地文件夹中的所有文件

using UnityEngine;

using System.Collections;

using System.Collections.Generic;

using System.IO;

public class LoadTexture : MonoBehaviour

//建立一个字典,来保存加载进来的图片

private Dictionary dirArr = new Dictionary();

//本地的路径,fileName表示的是文件夹的名字

private string url = @"E:\fileName";

void Start()

long length= GetDirectoryLength(url);

for (int i = 0; i < length; i++)

StartCoroutine(TEX(i.ToString()));

//从本地加载文本,index这里表示的是文件夹中文件的名字,通过名字一个一个的加载

IEnumerator TEX(string index)

//这里的文件路径与url的不一样,需要加上file://

WWW w = new WWW(@"file://E:\fileName\" + index + ".png");

yield return w;

int i = int.Parse(index);

dirArr.Add(i, w.texture);

//获取到文件夹中的个数

public long GetDirectoryLength(string dirPath)

//判断给定的路径是否存在,如果不存在则退出

if (!Directory.Exists(dirPath))

return 0;

long len = 0;

//定义一个DirectoryInfo对象

DirectoryInfo di = new DirectoryInfo(dirPath);

//通过GetFiles方法,获取di目录中的所有文件的大小

foreach (FileInfo fi in di.GetFiles())

len++;

return len;

这里就已经把外部的文件加载到unity里面了,并且保存在了字典中,当我们需要这些图片的时候就调用dirArr就可以了,当然了加载文本和这个都是类似的。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Unity循环加载文件夹的图片并显示在列表,你可以使用`System.IO`命名空间的`Directory`类来获取文件夹文件路径,然后使用Unity的`Texture2D`来加载并显示图片。下面是一个示例代码: ```csharp using UnityEngine; using UnityEngine.UI; using System.IO; public class ImageLoader : MonoBehaviour { public string folderPath; // 图片文件夹的路径 public RectTransform content; // 列表的Content对象 public GameObject imagePrefab; // 图片预制体 private void Start() { LoadImages(); } private void LoadImages() { string[] imageFiles = Directory.GetFiles(folderPath, "*.png"); // 可根据需要修改文件类型 foreach (string filePath in imageFiles) { Texture2D texture = LoadTexture(filePath); if (texture != null) { CreateImageItem(texture); } } } private Texture2D LoadTexture(string filePath) { byte[] fileData = File.ReadAllBytes(filePath); Texture2D texture = new Texture2D(2, 2); texture.LoadImage(fileData); return texture; } private void CreateImageItem(Texture2D texture) { GameObject imageObj = Instantiate(imagePrefab, content); Image imageComponent = imageObj.GetComponent<Image>(); imageComponent.sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), Vector2.zero); } } ``` 这段代码创建了一个`ImageLoader`类,其的`LoadImages`方法用于加载文件夹的图片并在列表创建对应的图片项。在`LoadImages`方法,我们使用`Directory.GetFiles`方法获取文件夹的所有图片文件路径,并使用`foreach`循环遍历每个文件路径。 在`LoadTexture`方法,我们使用`File.ReadAllBytes`方法读取图片文件数据,并使用`Texture2D.LoadImage`方法将数据加载到新创建的`Texture2D`对象。然后返回加载的纹理。 在`CreateImageItem`方法,我们实例化一个图片预制体对象,并获取其`Image`组件。然后,使用加载的纹理创建一个`Sprite`,并将其赋值给`Image`组件的`sprite`属性。 你可以将此脚本附加到场景的一个空对象上,并在Inspector视图设置图片文件夹的路径、列表的Content对象和图片预制体。确保指定的文件夹包含图片文件,并按需修改文件类型。运行游戏时,脚本将加载文件夹的每个图片文件,并在列表创建对应的图片项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值