Unity3d将资源从StreamingAssets文件夹释放到本地方法(.apk)


    在unity3d工程里面StreamingAssets文件夹下面的东西会随着你导出安卓安装包而导出。

根据圣殿上面给出的解释,在安卓里面都保存在在压缩的.jar文件中,这里面的文件不会随着应用的安装解压出来,而是一直存放在里面,。你可以用WWW类去进行

读取。

下面是他的读取路径,小编在工程里面的asset目录下手动创建文件夹StreamingAssets  ,里面存放用到的assetbundle类型的资源包。在安卓手机上面的读取路径如下:

string path = "jar:file://" + Application.dataPath + "!/assets/" + name;

name就是你要读取的资源文件;

通过

WWW mybundle = new WWW (path);
   yield return mybundle ;

上面就可以将你的文件读出,获得数据流mybundle.bytes,这样资源就被都出来了,下面进行写入,写入的方法很简单,通过下面的函数即可,

path是你要将文件写入手机的位置,这要看你的需求,比如可以写到Application.persistentDataPath里面,这就相当于手机的保存数据的地方,就是手机的沙盒文件。

FileInfo t = new FileInfo (path+"//"+name);
  if (!t.Exists) {
   sw = t.Create (); 
  } else {
   print ("已经存在,");
  }
  sw.Write (info,0,length);
  sw.Close ();
  sw.Dispose ();

通过上面的方法就将工程里面的asset目录下手动创建文件夹StreamingAssets  里面名字为name的资源写到了手机本地,为以后的资源更新准备。


将JSON保存到StreamingAssets文件夹需要的步骤与保存到本地文件夹类似。以下是一个示例: ``` using UnityEngine; using System.IO; [System.Serializable] public class MyData { public int id; public string name; public float value; } public class SaveJsonToStreamingAssets : MonoBehaviour { void Start() { MyData myData = new MyData(); myData.id = 1; myData.name = "test"; myData.value = 0.5f; string json = JsonUtility.ToJson(myData); string filePath = Application.streamingAssetsPath + "/mydata.json"; // 如果是Android平台,需要使用WWW类读写StreamingAssets文件夹中的文件 #if UNITY_ANDROID && !UNITY_EDITOR StartCoroutine(CopyFileAndroid(filePath, json)); #else // 如果是其他平台,可以直接使用File类读写文件 File.WriteAllText(filePath, json); #endif } IEnumerator CopyFileAndroid(string filePath, string json) { // 如果文件已经存在,先删除文件 if (File.Exists(filePath)) { File.Delete(filePath); } // 将文件从apk中复制到Application.persistentDataPath中 UnityWebRequest www = UnityWebRequest.Get(Application.streamingAssetsPath + "/mydata.json"); yield return www.SendWebRequest(); File.WriteAllBytes(filePath, www.downloadHandler.data); // 将JSON字符串写入文件 StreamWriter streamWriter = new StreamWriter(filePath, true); streamWriter.Write(json); streamWriter.Close(); } } ``` 在此示例中,我们将文件保存到StreamingAssets文件夹中的`mydata.json`文件。因为在Android平台上,无法直接使用`File`类读写StreamingAssets文件夹中的文件,所以我们需要使用`UnityWebRequest`类将文件从apk中复制到`Application.persistentDataPath`中,然后再使用`StreamWriter`将JSON字符串写入文件。对于其他平台,可以直接使用`File`类读写文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值