Unity 4.6 资产未在 Windows 8.1 导出中应用
Unity 4.6 assets not getting applied in Windows 8.1 export
我正在构建一款游戏,我需要根据玩家的选择在运行时更改其主题。这是一段更改背景图片的代码:
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 导出游戏时,没有图像应用到背景。变量 'path' 的计算结果为 "Assets/Textures/Default/Background.jpg",这是正确的路径,适用于 Unity 项目,但不适用于 Windows。
我是否需要单独导出我的图像文件夹或在导出游戏后使用不同的路径?可能是一件非常愚蠢的事情,但我有点迷路了
改用Resources.Load。 Resources.LoadAssetAtPath 仅在编辑器中有效。
在 "Assets" 文件夹下创建一个名为 "Resources" 的文件夹。将所有图像移动到此文件夹。
然后将您的代码更改为以下内容
path = themeName + "/Background.jpg";
Background_Image.GetComponent<Image>().sprite = Resources.Load<Sprite>(path);
以上代码假定您在 Resources 文件夹中有一个以您的主题命名的子文件夹。
例如,如果您的其中一个主题名为 "Theme1",则背景图片应存储在 {Your_Project_Folder}/Assets/Resources/Theme1/Background.jpg
我正在构建一款游戏,我需要根据玩家的选择在运行时更改其主题。这是一段更改背景图片的代码:
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 导出游戏时,没有图像应用到背景。变量 'path' 的计算结果为 "Assets/Textures/Default/Background.jpg",这是正确的路径,适用于 Unity 项目,但不适用于 Windows。
我是否需要单独导出我的图像文件夹或在导出游戏后使用不同的路径?可能是一件非常愚蠢的事情,但我有点迷路了
改用Resources.Load。 Resources.LoadAssetAtPath 仅在编辑器中有效。
在 "Assets" 文件夹下创建一个名为 "Resources" 的文件夹。将所有图像移动到此文件夹。
然后将您的代码更改为以下内容
path = themeName + "/Background.jpg";
Background_Image.GetComponent<Image>().sprite = Resources.Load<Sprite>(path);
以上代码假定您在 Resources 文件夹中有一个以您的主题命名的子文件夹。
例如,如果您的其中一个主题名为 "Theme1",则背景图片应存储在 {Your_Project_Folder}/Assets/Resources/Theme1/Background.jpg