unity3d在Android端读取修改Json数据
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了unity3d在Android端读取修改Json数据,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3141字,纯文字阅读大概需要5分钟。
内容图文
首先我们需要下载一个文件 LitJson.dll(下载链接 ps: 是用自己的百度云盘下载的如果链接过时,请留言或自行下载, 密码: 5foa)
另外,由于我们要发布到安卓手机上,所以需要配置Jar和SDK,由于这里主要讲Json在安卓端的修改和读取,在这里就不细说了,当然如果不发布手机端的话,电脑端也是可以正常使用的
(1)首先我们来简单搭建一个测试环境(如图)
从上到下依次为text文本框, 按钮, 输入框, 按钮, 功能如图显示(如果需要的话可以把UI放大,以免在手机上面太小,或者在Game左上角调整分辨率),. 搭建完之后,保存场景(菜单来File--Save Scene)
(2)现在我们需要来写脚本了,建一个名字为JsonTest的Csharp脚本, 如下:
1 using UnityEngine; 2 using System.Collections; 3 using LitJson; //导入Json 4using UnityEngine.UI; //导入UI 5using System.Text; //使用StringBuilder 6using System.IO; //使用文件流 7 8///<summary> 9/// Json手机端读取测试 10///</summary>11publicclass JsonTest : MonoBehaviour 12{ 13public Text jsonText; //显示Json的文本框14public InputField input; //修改Json数据的输入文本框15publicstring name; //测试是否更换了Json里面的值1617void Awake() 18 { 19 name = "Person"; //写一个人物的属性20 SaveJsonString(GetJson()); //得到一个Json数据之后,把这个数据存储起来 21 } 2223publicvoid DidReadJsonButton_Click() //读取Json文本的按钮事件24 { 25 jsonText.text = GetJsonString(); //读取json数据,并且显示到文本框里面 26 } 2728publicvoid DidConfirmInputButton_Click() //读取确定输入框内容的按钮事件29 { 30 name = input.text; //获取文本框里面的数据31 SaveJsonString(GetJson()); //存储起来 32 } 3334publicstring GetJson() //由于这里是测试, 本人就在这里简单写一个Json数据35 { //得到Json格式字符串36 StringBuilder sb = new StringBuilder(); 37 JsonWriter writer = new JsonWriter(sb); 38 writer.WriteObjectStart(); //字典开始39 writer.WritePropertyName(name); //键值(人物属性 通过改变name来打印出来值观察)40 writer.WriteObjectStart(); 41 writer.WritePropertyName("Hp"); //里面有这些属性42 writer.Write("20"); 43 writer.WritePropertyName("Mp"); 44 writer.Write("60"); 45 writer.WritePropertyName("Attack"); 46 writer.Write("30"); 47 writer.WritePropertyName("Exp"); 48 writer.Write("100"); 49 writer.WriteObjectEnd(); 50 writer.WriteObjectEnd(); //字典结束51return sb.ToString(); //返回Json格式的字符串52 } 5354publicvoid SaveJsonString(string JsonString) //保存Json格式字符串55 { 56 FileInfo file = new FileInfo(Application.persistentDataPath + "JsonData.Json"); //这里是重点,会在下面细说的,这里只需要知道它只是一个路径 57 StreamWriter writer = file.CreateText(); //用文本写入的方式58 writer.Write(JsonString); //写入数据59 writer.Close(); //关闭写指针60 writer.Dispose(); //销毁写指针61 } 6263publicstring GetJsonString() //从文件里面读取json数据64 { //由于这里只是测试,所以就不写具体的解析数据了65StreamReader reader = new StreamReader(Application.persistentDataPath + "JsonData.Json"); 66string jsonData = reader.ReadToEnd(); 67 reader.Close(); 68 reader.Dispose(); 69return jsonData; 70 } 71 }
(3)脚本我们已经写完了, 现在我们需要挂载脚本,我是建了一个空物体挂载脚本,然后需要把对应的物体给拖进去(不要忘记拖按钮事件哦)运行结果如下:
通过结果可以看到,在电脑端已经成功了
(4)接下来就是打包发布了, 菜单栏(File)--Build Settings--Platform(Android)-- Add Current(或者把刚才的场景拖进去,尽量在打包之前先把场景保存一遍,然后在添加进去), 在这里需要点击Player Settings 右边有个小安卓机器人的图标,点击一下,到Ohter Settings里面ba Bundle Identifier 里面的com.Company.后面的改一下,如果需要旋转屏幕可以在Resolution and Preadentaion里面的Default Orientaion里面调整你想要的效果
上面依次是手机上面的效果, 开始页面,显示,修改页面
(5)如果想发布到电脑端的话,同样也可以哦,只需要把刚才的第四步里面发布的发布平台(Platform)更换成PC就可以了,同样可以使用的
(6)现在我们来说说Application.persistentDataPath这个路径
这个路径只有在应用程序装到手机端之后才有的路径,所以不能直接把文件存放在该路径, 在这个路径下的资源,是可以修改和读取的,对于我们需要修改的数据可以存放在这里面的, 就拿存放在Resources资源文件夹里面的资源来说, 这里面的资源是可以通过Resources.Load<>来获取到的,但是不能修改,这个比较坑,不过可以把一些预制体放在这个文件夹里面还是比较方便的.
原文:http://www.cnblogs.com/ZhiXing-Blogs/p/4900544.html
内容总结
以上是互联网集市为您收集整理的unity3d在Android端读取修改Json数据全部内容,希望文章能够帮你解决unity3d在Android端读取修改Json数据所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。