如何用名字来更换image的图片,比如我通过sprite图片名字去切换那样子!怎么做!
不推荐使用名字去更换,这样的性能会很低,因为是全局查找
另一种方式是通过标签查找
你可以试试预先读取到一个数组中,然后遍历读取,或者哈希表读取(在图片过大的时候,需要进行优化处理)
哈希表的查找效率更高
下面的代码是哈希的读取文件与查找
using UnityEngine;
using System.IO;
using System.Collections.Generic;
public string folderPath;
public Dictionary<string, Texture2D> imageDict;
void LoadImages()
{
DirectoryInfo dir = new DirectoryInfo(folderPath);
FileInfo[] files = dir.GetFiles("*.png"); // 可根据需要更改文件扩展名
imageDict = new Dictionary<string, Texture2D>();
for (int i = 0; i < files.Length; i++)
{
byte[] fileData = File.ReadAllBytes(files[i].FullName);
Texture2D tex = new Texture2D(2, 2);
tex.LoadImage(fileData);
imageDict.Add(tex.name, tex);
}
}
public Texture2D GetImageByName(string imageName)
{
if (imageDict.ContainsKey(imageName))
{
return imageDict[imageName];
}
return null;
}