我有很多组图像(PNG),它们放置在Resources
项目的 Assets 文件夹中。使用编辑器时,我可以毫无问题地从不同的子文件夹加载图像,只需简单地使用Resources.Load()
命令并提供我尝试加载的特定图像的路径,例如:
firstLeftCC = Resources.Load("Case2/Left/CC/IMG-0004-00001", typeof(Texture2D)) as Texture2D;
在本例中,图像“IMG-0004-00001”放置在CC文件夹中,CC文件夹位于Left文件夹中,Left文件夹位于Case2文件夹中,最后Case2文件夹位于Resources文件夹中。
但是在构建项目后,对于 Windows 应用程序,当我运行.exe
文件它不会加载任何这些图像。经过一番研究,问题似乎与 Resources 内子文件夹的存在有关,因为构建中不存在为 Resources.Load() 函数加载图像的路径。
我想知道是否有人知道此问题的解决方案,或者是否可以从给定文件夹加载图像,而不是尝试从资源文件夹加载图像。
先谢谢您的帮助。
Optional在运行时加载 PNG 文件的方法。
您可以离开Case2开发期间在资产文件夹中。After如果您为 Windows 构建,请转到文件夹exe构建的文件是.我们假设它被称为Game.exe。会有一个文件夹叫游戏数据在同一目录中Game.exe可执行文件是.
Copy the Case2文件夹到游戏数据 folder.
现在应该看起来像这样......Game_Data/Case2/Left/CC/IMG-0004-00001.PNG
现在使用下面的代码,您可以轻松地read your png包含以下代码的文件:
Texture2D firstLeftCC = null;
byte[] imageBytes;
string imagePath = Application.dataPath + "/Case2/Left/CC/IMG-0004-00001.PNG";
if (File.Exists(imagePath))
{
Debug.Log("Exist");
imageBytes = File.ReadAllBytes(imagePath);
firstLeftCC = new Texture2D(10, 10);
firstLeftCC.LoadImage(imageBytes);
}
现在你可以自由地使用firstLeftCC作为Texture2D
Note:Unity创建.meta文件夹对于每一个文件夹 in the Assets目录。当你复制目录时,IMG-0004-00001.PNG将有另一个名为IMG-0004-00001.PNG.meta。您不应该将您的Case2在开发过程中将文件夹放在 Assets 文件夹中,否则您必须delete这些你自己。
Include using System.IO;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)