【问题标题】:Unity 4.6 assets not getting applied in Windows 8.1 exportUnity 4.6 资产未在 Windows 8.1 导出中应用
【发布时间】:2015-01-20 09:01:18
【问题描述】:

我正在构建一个游戏,我需要根据玩家的选择在运行时更改其主题。以下是更改背景图像的代码块:

    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 导出游戏时,没有图像被应用到背景。变量“路径”的计算结果为“Assets/Textures/Default/Background.jpg”,这是正确的路径,适用于 Unity 项目,但不适用于 Windows。

导出游戏后是否需要单独导出我的图像文件夹或使用不同的路径?可能是一件非常愚蠢的事情,但我有点迷失在这里

【问题讨论】:

    标签: unity3d windows-8.1


    【解决方案1】:

    改用 Resources.LoadResources.LoadAssetAtPath 仅在编辑器中有效。

    在“资产”文件夹下创建一个名为“资源”的文件夹。将所有图像移至此文件夹。

    然后将您的代码更改为以下内容

     path = themeName + "/Background.jpg";
     Background_Image.GetComponent<Image>().sprite = Resources.Load<Sprite>(path);
    

    以上代码假设您在 Resources 文件夹中有一个以您的主题命名的子文件夹。

    例如,如果您的某个主题名为“Theme1”,则背景图片应存储在 {Your_Project_Folder}/Assets/Resources/Theme1/Background.jpg 中

    【讨论】:

    • 感谢您的解释。与统一和 VS 完美结合 :)
    • 还有一件事,如果我们可以通过加载实现相同的目标,那么 LoadAssetAtPath 有什么用?
    • 根据 Unity 的文档“这对于快速访问仅在编辑器中使用的资产非常有用。”我个人从未见过太多使用它。
    猜你喜欢
    • 2014-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多