如何用名字来更换image的图片,比如我通过sprite图片名字去切换那样子!怎么做!
1条回答 默认 最新
- nameless_233 2023-07-24 08:50关注
不推荐使用名字去更换,这样的性能会很低,因为是全局查找
另一种方式是通过标签查找
你可以试试预先读取到一个数组中,然后遍历读取,或者哈希表读取(在图片过大的时候,需要进行优化处理)
哈希表的查找效率更高
下面的代码是哈希的读取文件与查找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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录