当前位置:   article > 正文

Unity自带方法读写JSON文件_unity随机读取json

unity随机读取json

最近使用JSON文件保存模型表情数据,简单记录一下。

首先自定义数据类,需要记录表情每帧的所有BlendShape及时间戳:

  1. [System.Serializable]
  2. public class RecBlendShape
  3. {
  4. public List<float> Fram;
  5. public long timeStamp;
  6. }

使用Unity自带的JSON读写方法:

  1. /// <summary>
  2. /// 记录BlendShape数据为JSON
  3. /// </summary>
  4. private void RecBlendShapeToJSON()
  5. {
  6. //获取表情BlendShape值
  7. List<float> getBS = new List<float>();
  8. RecBlendShape testRecBS = new RecBlendShape();
  9. for (int i = 0; i < targetFace.sharedMesh.blendShapeCount; i++)
  10. {
  11. getBS.Add(targetFace.GetBlendShapeWeight(i));
  12. }
  13. testRecBS.Fram = getBS;
  14. //当前时间戳转毫秒时间
  15. long curTimeStamp = (System.DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000;
  16. //计算与开始记录的时间间隔
  17. testRecBS.timeStamp = curTimeStamp - startTimeStamp;
  18. //序列化为JSON格式保存为StringBuilder类型
  19. string json = JsonUtility.ToJson(testRecBS) + "\n";
  20. myJSON.Append(json);
  21. }
  22. /// <summary>
  23. /// 读取JSON每帧赋值一个表情数据
  24. /// </summary>
  25. private void UpdateData()
  26. {
  27. //反序列化JSON数据
  28. rbs = JsonUtility.FromJson<RecBlendShape>(getJSON[frame]);
  29. for (int j = 0; j < defaultFace.sharedMesh.blendShapeCount; j++)
  30. {
  31. defaultFace.SetBlendShapeWeight(j, rbs.Fram[j]);
  32. }
  33. frame++;
  34. }

保存与读取JSON文件:

  1. /// <summary>
  2. /// 保存JSON文件
  3. /// </summary>
  4. private void SaveJSON()
  5. {
  6. FileStream file = File.Create(targetFbxFile + "_FaceJson.json");
  7. byte[] byteArray = System.Text.Encoding.Default.GetBytes(myJSON.ToString());
  8. file.Write(byteArray, 0, byteArray.Length);
  9. file.Close();
  10. }
  11. /// <summary>
  12. /// 读取JSON文件
  13. /// </summary>
  14. private void SaveJSON()
  15. {
  16. path = targetFbxFile + "_FaceJson.json";
  17. if (!File.Exists(path))
  18. {
  19. Debug.Log("文件不存在");
  20. return;
  21. }
  22. getJSON = File.ReadAllLines(path);
  23. }

简单记录,部分变量与方法未展示,仅供参考。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/794177
推荐阅读
相关标签
  

闽ICP备14008679号