Unity(六) 使用XML/JSON/Binary数据文件封装场景以及StreamingAssets目录的安卓平台同步
来源:互联网 发布:用友软件t3标准版 编辑:程序博客网 时间:2024/05/16 11:23
PS:首先感谢给我带来帮助信息的各位博主。尊重原创收藏以温故。文末附上原参考链接以及示例工程
一:了解Unity资源加载的方式
1:Resources文件夹
只读,不能动态修改,打包发布时包含目录下所有内容。资源加载方式如Resources.Load(预制名)等
需要进行写操作的文件不要存放到这里,如存储游戏数据
2:StreamingAssets文件夹
虚拟目录,PC平台读取正常,打包发布后时会被压缩加密,只能进行WWW读取。主要存放二进制文件和如视频文件等
PC读取路径:filepath = "file://"+ Application.streamingAssetsPath+“/my.xml”
例:
IEnumerator LoadXML() { string sPath= "file://"+Application.streamingAssetsPath + "/my.xml"; WWW www = new WWW(sPath); yield return www; _result = www.text;//XML表数据
XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(www.text); XmlNodeList nodeList = xmlDoc.SelectSingleNode("gameObjects").ChildNodes; foreach (XmlElement scene in nodeList)
{
}
}
Android读取路径:filepath ="jar:file://"+Application.dataPath+ "!/assets"+"/my.xml";
方法同上
3:AssetBundle (可参考上一篇文章)
Unity定义的一种二进制文件,包体较小。如打包预制、场景等,读取方式WWW
关于移动端脚本更新的问题已不是问题,本地工程包含脚本即可。
打包发布后大版本如1.0主要更新脚本内容,小版本如1.0.1主要更新资源如场景模型等,都是通过服务器对比版本下载更新。若大版本已发布则优先用户强制更新大版本
4:永久/临时路径PersistentDataPath
内容可读写,不过是运行时才可写入或读取,所以提前存入数据是不可行的。例如本人参考示例工程打包场景数据写入XML然后存入永久路径,这些都是在编辑模式下进行的。
正在准备实现将玩家数据等重要信息封装到XML中保存到该永久路径
例:
XmlDocument xmlDoc = new XmlDocument();
...
xmlDoc.Save(Application.persistentDataPath+"//abc.xml");
读:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Application.persistentDataPath+"//abc.xml");
二:将场景信息封装到XML/JSON/Binary数据文件中,以实现动态加载
原参考工程链接已分享在下面,主要实现的是PC端
本文修改后的工程也分享在下面,PC端和移动端都可运行(心得体会记录在readme.text中)
三:在不同平台下的资源路径同步和总结
if(Application.platform==RuntimePlatform.Android)
localPath = Application.streamingAssetsPath+"/score.xml"; //在Android中实例化WWW不能在路径前面加"file://" else localPath = "file://"+UnityEngine.Application.streamingAssetsPath + "/score.xml";//在Windows中实例化WWW必须要在路径前面加"file://"WWW www = new WWW(localPath);while (!www.isDone){yield return www;}XmlDocument xmlDoc = new XmlDocument();xmlDoc.LoadXml(www.text); //也可以使用Load(localPath)只适用PC平台XmlNodeList nodeList=xmlDoc.SelectSingleNode("rank").ChildNodes;foreach(XmlElement xe in nodeList){
}
IOS和PC平台读取方法一致 string filepath = Application.dataPath +"/StreamingAssets"+"/json.txt";
本文工程:https://pan.baidu.com/s/1i4LsgSH
原参考工程:https://pan.baidu.com/s/1gfzrNEj
参考链接:
1:[雨松MOMO] Unity3D研究院之将场景导出XML或JSON或二进制并且解析还原场景(四十二)
http://www.manew.com/thread-21417-1-1.html
2:[雨松MOMO] Unity3D之Android同步方法读取streamingAssets(八十八)
http://www.manew.com/thread-89202-1-1.html
3:Unity3D移动平台动态读取外部文件全解析 http://www.cnblogs.com/murongxiaopifu/p/4199541.html
4: unity Android 打包后读取 xml 文件 https://www.tuicool.com/articles/BZrQzi
5:unity 在移动平台中,文件操作路径详解 http://www.cnblogs.com/wonderKK/p/3969284.html
9:Unity3d新网络请求方式UnityWebRequest详解 http://gad.qq.com/article/detail/34139%20target=
如有疑问之处,欢迎指正和探讨。
- Unity(六) 使用XML/JSON/Binary数据文件封装场景以及StreamingAssets目录的安卓平台同步
- 安卓平台下访问StreamingAssets目录下文件
- Unity3D 在安卓平台下访问StreamingAssets目录下文件,找不到的问题
- unity 中使用 WWW 类读取 StreamingAssets 目录的路径问题
- 【Unity】关于各个平台加载streamingAssets路径
- Unity利用Xml和Json保存场景
- 线程的同步异步,以及具体代码实现,使用场景
- 安卓对数据的解析,对xml文件解析,以及对json的解析
- 导出Unity场景的所有游戏对象信息,一种是XML一种是JSON
- 在Unity中常用到的一些安卓方法封装
- unity StreamingAssets路径
- unity StreamingAssets路径 .
- unity StreamingAssets路径
- Unity中的StreamingAssets
- Unity发布安卓平台——截屏保存到安卓目录方法
- Unity在安卓平台的应用间跳转
- Unity中调用安卓平台下的系统按键
- Unity插件EasyToucu安卓平台的个人开发实例
- transition(过渡)
- html input输入限制小于100的正整数
- angular4启动报错信息InvalidConfigError: Parsing angular-cli.json failed. Ensure the file is valid JSON
- 控制可调白光 LED,实现以人为本的照明---凯利讯半导体
- 【FileUpload选中文件后,改文件无法修改,上传后也一直占用着,直到关闭后才释放】
- Unity(六) 使用XML/JSON/Binary数据文件封装场景以及StreamingAssets目录的安卓平台同步
- Qt -Ftp下载之修改文件属性(修改时间,访问时间)
- linaro linaro-alip login: root (automatic login)
- 有哪些纯音乐可以伴随你入眠
- 数据结构实验之排序四:寻找大富翁
- JS——数组去重
- subliem 插件
- 深入探索透视投影变换(续)
- Spring3笔记6-复习