我正在制作一款游戏,我需要根据玩家的选择在运行时更改其主题。这是改变背景图像的一大块代码:
string path;
string themeName;
themeName = PlayerPrefs.GetString("Theme_Name");
//Change Background Image
path = "Assets/Textures/" + themeName + "/Background.jpg";
Background_Image.GetComponent<Image>().sprite = Resources.LoadAssetAtPath<Sprite>(path);
这在Unity中完美运行,但是当我导出Windows 8.1游戏时,没有图像应用于背景。变量&#39;路径&#39;评估为&#34;资产/纹理/默认/ Background.jpg&#34;这是正确的路径,适用于Unity项目,但不适用于Windows。
导出游戏后,是否需要单独导出图像文件夹或使用其他路径?可能是一个非常愚蠢的事情,但我有点迷失在这里
答案 0 :(得分:1)
请改用 Resources.Load 。 Resources.LoadAssetAtPath 仅适用于编辑器。
创建一个名为&#34; Resources&#34;的文件夹。根据&#34;资产&#34;夹。将所有图像移动到此文件夹。
然后将您的代码更改为以下
path = themeName + "/Background.jpg";
Background_Image.GetComponent<Image>().sprite = Resources.Load<Sprite>(path);
上面的代码假设您在Resources文件夹中有一个以您的主题命名的子文件夹。
例如,如果您的某个主题被调用&#34; Theme1&#34;,则背景图片应存储在{Your_Project_Folder} /Assets/Resources/Theme1/Background.jpg
中