public void WriteJson(object ob, string jsonName)
{
string json = LitJson.JsonMapper.ToJson(ob)
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(json)
string filePath = Application.dataPath + "/Resources/" + jsonName + ".json"
using (System.IO.FileStream stream = new System.IO.FileStream(filePath, System.IO.FileMode.Create))
{
stream.Write(bytes, 0, bytes.Length)
}
UnityEditor.AssetDatabase.Refresh()//属性掘薯困Asset,生成完成后立刻可以看到文件
}
方法二 jsonwriter 半编译写法
void CreateJson()
{
string path = Application.dataPath + "/Resources/Jsons/" + objBase.transform.name + ".json"
FileInfo fileInfo = new FileInfo(path)
StreamWriter sw = fileInfo.CreateText()
StringBuilder sb = new StringBuilder()
JsonWriter jsonwriter = new JsonWriter(sb)
jsonwriter.WriteObjectStart()//1
for (int i = 0i <numbers.Counti++)
{
jsonwriter.WritePropertyName("Number" + (i + 1))
jsonwriter.WriteObjectStart()//1-1
type = new List<Transform>()
foreach (Transform child in numbers[i].transform)
type.Add(child)
jsonwriter.WritePropertyName("TypeCount")jsonwriter.Write(type.Count)
手举 for (int j = 0j <type.Countj++)
{
jsonwriter.WritePropertyName("Type"判念 + (j + 1))
jsonwriter.WriteObjectStart()//1-1-1
pos = new List<Transform>()
foreach (Transform child in type[j].transform)
pos.Add(child)
jsonwriter.WritePropertyName("Size")jsonwriter.Write(pos[0].transform.localScale.x.ToString())
jsonwriter.WritePropertyName("Pos")
jsonwriter.WriteArrayStart()
for (int k = 0k <pos.Countk++)
{
jsonwriter.Write("(" + pos[k].transform.localPosition.x + "," + pos[k].transform.localPosition.y + ")")
}
jsonwriter.WriteArrayEnd()
jsonwriter.WriteObjectEnd()//1-1-1
}
jsonwriter.WriteObjectEnd()//1-1
}
jsonwriter.WriteObjectEnd()//1
sw.WriteLine(sb.ToString())
sw.Close()
AssetDatabase.Refresh()
}
Json 里面的数据是double 类型,使用float 会出问题
double.Parse float .Parse 不一样
1,在unity3d 工程中创建一个Plugs文件夹,将迅衡网上下好的LitJson1.1放在这个文件夹里。2,再创建一余友个Resources文件夹,将json文本“mytestui.txt”放在这个文件夹。
亩毁做 3、然后调用。
Unity的优势:良好的编辑器支持,包括Animator动画状态机,Animation动画编辑器,粒子编辑器等等。
Unity可以使用C#编程,省去了内存管理的麻烦,还可以通过协程来处理游戏中的异步事件等等,C#的很多库也是很方便(PureMVC,LitJSON)
Unity有内置的Profiler,可以直观地对性能进行调优。
Unity的劣势
对GameObject之间的通讯的支持做的不好,关于这一点,我写了一篇博客来讲这个问题:【Unity3D技巧】在Unity中使用事件/委托机制(event/delegate)进行GameObject之间的通信 (二) : 引入中间层NotificationCenter
对NameSpace支持的不好,到4.x的时候NameSpace还是不能正常使用
对文件读写没有内置的支持, 对JSON和XML数据的读写 没有毕凯内置的支持。
在2D方面的许多特性还是在开发中,功能比较弱。比如Sprite Packer,骨骼动画等。
由于Unity入门比较容易,导致大量美工和策划也能使用Unity,致使网兄察上的代码资源良莠不齐,很多博客和文章连最基本的代码高亮都没手尘唤有(比如说Unity3D贴吧和游戏蛮牛论坛)。相比之下,Cocos2d-x网上的学习资源比较适合程序员。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)