加载一个json文件代码: UnityWebRequest webRequest = UnityWebRequest.Get(Application.streamingAssetsPath + "/TiData.json"); 这段 在 Linux 平台 怎么使用 我查了一下 好像不支持这个 平台 有没有 代替方案?
时间: 2024-02-04 18:01:55 浏览: 122
是的,Linux平台不支持UnityWebRequest的StreamingAssets路径。一种解决方案是使用绝对路径,例如:
```csharp
string filePath = Path.Combine(Application.streamingAssetsPath, "TiData.json");
UnityWebRequest webRequest = UnityWebRequest.Get("file://" + filePath);
```
另一种解决方案是使用AssetBundle,将Json文件打包成AssetBundle,然后在Linux平台上加载AssetBundle来获取Json数据。您可以使用AssetBundle.CreateFromFile方法在运行时加载AssetBundle,然后使用AssetBundle.LoadAsset<TextAsset>方法获取Json文件的TextAsset,并从中读取Json数据。
```csharp
string filePath = Path.Combine(Application.streamingAssetsPath, "TiData");
AssetBundle assetBundle = AssetBundle.CreateFromFile(filePath);
TextAsset textAsset = assetBundle.LoadAsset<TextAsset>("TiData.json");
string json = textAsset.text;
```
请注意,使用AssetBundle的优点是可以在发布后更改和更新Json文件,而不必重新构建整个项目。
阅读全文