-
-
Save amowu/8121334 to your computer and use it in GitHub Desktop.
// Put your file to "YOUR_UNITY_PROJ/Assets/StreamingAssets" | |
// example: "YOUR_UNITY_PROJ/Assets/StreamingAssets/db.bytes" | |
string dbPath = ""; | |
if (Application.platform == RuntimePlatform.Android) | |
{ | |
// Android | |
string oriPath = System.IO.Path.Combine(Application.streamingAssetsPath, "db.bytes"); | |
// Android only use WWW to read file | |
WWW reader = new WWW(oriPath); | |
while ( ! reader.isDone) {} | |
realPath = Application.persistentDataPath + "/db"; | |
System.IO.File.WriteAllBytes(realPath, reader.bytes); | |
dbPath = realPath; | |
} | |
else | |
{ | |
// iOS | |
dbPath = System.IO.Path.Combine(Application.streamingAssetsPath, "db.bytes"); | |
} |
Thank you for the code , finally found a snippet I could use .
Also @dnorth for the JSON file handling !
If your file is too large (> 2MB in my case), waiting for www.isDone
in a while loop will hang the app.
Unity explicitly discourages this in the docs: You should not write loops that spin until download is done; use coroutines instead.
, because depending on the platform, the www download may take place on the main thread, which will hang up your app.
Could someone help me please with this . I'm still not getting the .json data from android.
I also had trouble getting the json to read. what is in Boards class from @dnorth that we don't see?
I have an XML file stored in the streamingAssets/XML/file.xml.
The code work for iOS but not in Android!!
Any Idea?
I'm extremely a newbie to Unity. I've a JSON file from the web. The JSON file contents loads well in Unity Desktop. However, when I build APK and load it from Phone, the JSON contents doesn't load. How can I get it to work?
Here is my code:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using SimpleJSON;
public class DataLoader : MonoBehaviour
{
string JsonDataString;
public string OriginalJsonSite;
public Text Temp;
public Text Humid;
IEnumerator Start()
{
while (true)
{
WWW readingsite = new WWW(OriginalJsonSite);
yield return readingsite;
if (string.IsNullOrEmpty(readingsite.error))
{
JsonDataString = readingsite.text;
}
JSONNode jsonNode = SimpleJSON.JSON.Parse(JsonDataString);
Temp.text = jsonNode["temp"].ToString().ToUpper();
Debug.Log(jsonNode["temp"]);
Humid.text = jsonNode["humid"].ToString().ToUpper();
Debug.Log(jsonNode["humid"]);
yield return new WaitForSeconds(2);
}
}
}
Thanks !
Thankkkkkkkkk you verrrryyyyyyy muccccchhhhhhhh ;DDDDDDDD
Thanks for share this code. @dnorth I used this same solution for my project. Thanks!