unity实现读取文件夹中的图片(用户可自行更新和添加图片)

tech2023-06-28  119

```csharp using System.Collections; using System.Collections.Generic; using System.IO; using UnityEngine; using UnityEngine.UI; public class PuzzleManager : MonoBehaviour { //单例 private static PuzzleManager instance; public static PuzzleManager Instance { get { return instance; } set { instance = value; } } private List<Texture2D> images = new List<Texture2D>(); //存放读取到的图片 private void Awake() { instance = this; DontDestroyOnLoad(this); } void Start () { Load(); } //加载文件夹下的图片 void Load() { List<string> imgPaths = new List<string>();//存放图片路径 string imgtype = "*.jpg|*.png"; string[] Imagetype = imgtype.Split('|'); //把图片类型存在数组里 for (int i = 0; i < Imagetype.Length; i++) { //获取application.datapath文件夹下所有的图片路径 string[] dirs = Directory.GetFiles((Application.dataPath + "/StreamingAssets/Textures/"), Imagetype[i]); for (int j = 0; j <dirs.Length; j++) { imgPaths.Add(dirs[j]); } } for (int i = 0; i < imgPaths.Count; i++) { Texture2D tx = new Texture2D(960,540); tx.LoadImage(getImageByte(imgPaths[i])); images.Add(tx); } } //根据图片路径返回图片的字节流byte[] private static byte[] getImageByte(string imagepath) { FileStream files = new FileStream(imagepath,FileMode.Open); byte[] imgByte = new byte[files.Length]; files.Read(imgByte,0,imgByte.Length); files.Close(); return imgByte; } }

最新回复(0)