HoloLens下载、读取Json文件问题(个人Hololens2进阶开发小总结二)
HoloLens文件存储路径问题`
在上一期中介绍了在Unity编辑器下开发HoloLens时文件怎么存储,存储在哪里的问题。具体链接:
提示:以下是本篇文章正文内容
HoloLens读取和下载Json文件
其实在Unity编辑器下开发HoloLens时读取Json文件的操作与正常的读取操作一样,只不过要解决好读取的路径问题。
比如我有这样一个Json文件:
其中url为下载链接。项目需要实现服务器更新视频链接时我在HoloLens2打开时再次获取这个Json文件,url链接也会变换,即可实现更新本地的视频。
一、具体步骤
1.先定义需要的Json文件成员
[System.Serializable]
class data
{
public string url;
public string name;
}
[System.Serializable]
class Video
{
public data[] data;
}
注意class data为Json里面你需要获取到的成员字段,Video是你随便取名字
2.读取数据
public static string ReadData()
{
string readData;
string fileUrl = Application.persistentDataPath + "/VideoJSON/video.json";
using (StreamReader sr = File.OpenText(fileUrl))
{
readData = sr.ReadToEnd();
sr.Close();
}
return readData;
}
fileUrl具体在哪里 你可以先在Hololens2后台里面找找这个文件有没有下载到,具体实现在上一期有讲
3.根据Json中url链接下载对应的视频链接
public void DownVideo()
{
string vs = ReadData();
Video v = JsonUtility.FromJson<Video>(vs);
foreach(data a in v.data)
{
Debug.Log(a.name);//这里你就可以用你获取到的name和url了
Debug.Log(a.url);
}
}
获取到url后就可以开始下载了
4.下载
IEnumerator DownVideo(string downloadVideoName, string videoURL)
{
path = Application.persistentDataPath + @"/Video";//填写想把视频存放在Hololens2本机的路径
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
Debug.Log("下载" + path);
WWW www = new WWW(videoURL);
yield return www;
if (!string.IsNullOrEmpty(www.error))
{
Debug.Log("请求失败");
}
else
{
fs = File.Create(path + "/" + downloadVideoName + ".mp4"); //path为你想保存文件的路径。
fs.Write(www.bytes, 0, www.bytes.Length);
fs.Close();
Debug.Log("视频下载成功");
}
}
总结
到这里,关于HoloLens下载、读取与存储Json文件路径的问题已经解决了,因为项目不仅需要在Hololens2本机中实现根据服务器修改的Json文件更新视频,还需要更新在部分场景中的模型、材质以及动画的功能,这里就涉及到在Unity编辑器下开发Hololens2时AssetBundle资源管理问题,这个在下期再来谈谈。