C# 构建iOS Unity时出现文件路径问题

C# 构建iOS Unity时出现文件路径问题,c#,ios,json,unity3d,path,C#,Ios,Json,Unity3d,Path,我的项目中有一堆JSON文件,用于加载级别。然而,我不确定在哪里找到他们的道路。它们位于我的项目中的资产/资源/级别数据中 我尝试了Application.dataPath+“Assets/Resources/LevelsData/”,但似乎没有出现。有人能告诉我在哪里可以使用Application.dataPath找到它吗?比如,在调用Application.dataPath之后,我要添加什么才能进入资产文件夹?或者,当我在iOS上运行项目时,项目的文件树是否会更改?为您提供了“/Assets

我的项目中有一堆JSON文件,用于加载级别。然而,我不确定在哪里找到他们的道路。它们位于我的项目中的资产/资源/级别数据中

我尝试了
Application.dataPath+“Assets/Resources/LevelsData/”
,但似乎没有出现。有人能告诉我在哪里可以使用Application.dataPath找到它吗?比如,在调用Application.dataPath之后,我要添加什么才能进入资产文件夹?或者,当我在iOS上运行项目时,项目的文件树是否会更改?

为您提供了“/Assets”,因此您必须使用

Application.dataPath + "/Resources/LevelsData/"

编辑

对于IOS,它在文档页面上显示:

iOS player://数据(此 文件夹为只读,请使用Application.persistentDataPath保存数据)


如果文件放在Resources文件夹中,则不能使用
Application.dataPath+“/Assets/Resources/LevelsData/
。这是因为Unity将文件编码为二进制格式并将其重命名。必须使用
资源读取Resources文件夹中的文件。加载

您需要
资源。加载
文本资源

支持的
TextAsset
格式:

.txt .html .htm .xml .字节 .json .csv 亚姆先生 .fnt

现在,让我们阅读一个名为
JsnFile1.json
的json文件,该文件位于
Assets/Resources/LevelsData/

void Start()
{
    string jsonFileDir = "LevelsData/JsnFile1";
    TextAsset jsonFile = Resources.Load(jsonFileDir, typeof(TextAsset)) as TextAsset;
    Debug.Log(jsonFile.text);
}
void Start()
{
    string objDirFileDir = "LevelsData/Bullet";
    GameObject jsonFile = Resources.Load(objDirFileDir, typeof(GameObject)) as GameObject;
    Debug.Log(jsonFile.name);
}
请注意,您没有将文件扩展名放在
Resources.Load
函数中。如果这样做,它将失败

让我们在
Assets/Resources/LevelsData/
中加载一个名为Bullet的游戏对象预置

void Start()
{
    string jsonFileDir = "LevelsData/JsnFile1";
    TextAsset jsonFile = Resources.Load(jsonFileDir, typeof(TextAsset)) as TextAsset;
    Debug.Log(jsonFile.text);
}
void Start()
{
    string objDirFileDir = "LevelsData/Bullet";
    GameObject jsonFile = Resources.Load(objDirFileDir, typeof(GameObject)) as GameObject;
    Debug.Log(jsonFile.name);
}

不起作用。很明显,它只会给你更多的财富“在编辑器中。检查我在答案中链接的文档页面。我已经读过了,但我不清楚。非常感谢。资源文件夹是我创建的。您的解决方案是否取决于相应文件的位置?如果是这样的话,我宁愿把它们放在别的地方,然后用我目前的加载方式。更新:我试过把这些文件移到另一个文件夹,不是吗work@MihaiStan否和否。您的文件必须位于
Assets/Resources/LevelsData
目录中才能工作。我从来没说过你应该移动它们。将它们放回问题所在的位置,只需将
JsnFile1
替换为其中一个文件的名称即可。不要输入扩展名。这在发布之前已经过测试,应该可以正常工作。它们都应该放在
Assets/Resources/LevelsData
编辑器中是否也可以?因为它不起作用。我测试了它,它又工作了。很高兴你让它工作了。你做错了什么?