CubismDisplayInfo3Json.cs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. /**
  2. * Copyright(c) Live2D Inc. All rights reserved.
  3. *
  4. * Use of this source code is governed by the Live2D Open Software license
  5. * that can be found at https://www.live2d.com/eula/live2d-open-software-license-agreement_en.html.
  6. */
  7. using System;
  8. using UnityEngine;
  9. namespace Live2D.Cubism.Framework.Json
  10. {
  11. /// <summary>
  12. /// Handles display info from cdi3.json.
  13. /// </summary>
  14. [Serializable]
  15. public sealed class CubismDisplayInfo3Json
  16. {
  17. /// <summary>
  18. /// Loads a cdi3.json.
  19. /// </summary>
  20. /// <param name="cdi3Json">cdi3.json to deserialize.</param>
  21. /// <returns>Deserialized cdi3.json on success; <see langword="null"/> otherwise.</returns>
  22. public static CubismDisplayInfo3Json LoadFrom(string cdi3Json)
  23. {
  24. if (string.IsNullOrEmpty(cdi3Json))
  25. {
  26. return null;
  27. }
  28. var ret = JsonUtility.FromJson<CubismDisplayInfo3Json>(cdi3Json);
  29. return ret;
  30. }
  31. #region Json Data
  32. /// <summary>
  33. /// Json file format version.
  34. /// </summary>
  35. [SerializeField]
  36. public int Version;
  37. /// <summary>
  38. /// Array of model parameters.
  39. /// </summary>
  40. [SerializeField]
  41. public SerializableParameters[] Parameters;
  42. /// <summary>
  43. /// Array of ParameterGroups.
  44. /// </summary>
  45. [SerializeField]
  46. public SerializableParameterGroups[] ParameterGroups;
  47. /// <summary>
  48. /// Array of Parts.
  49. /// </summary>
  50. [SerializeField]
  51. public SerializableParts[] Parts;
  52. #endregion
  53. #region Json Helpers
  54. [Serializable]
  55. public struct SerializableParameters
  56. {
  57. /// <summary>
  58. /// The ID of the parameter.
  59. /// </summary>
  60. [SerializeField]
  61. public string Id;
  62. /// <summary>
  63. /// The Group ID of the parameter.
  64. /// </summary>
  65. [SerializeField]
  66. public string GroupId;
  67. /// <summary>
  68. /// The Name of the parameter.
  69. /// </summary>
  70. [SerializeField]
  71. public string Name;
  72. }
  73. [Serializable]
  74. public struct SerializableParameterGroups
  75. {
  76. /// <summary>
  77. /// The ID of the parameter.
  78. /// </summary>
  79. [SerializeField]
  80. public string Id;
  81. /// <summary>
  82. /// The Group ID of the parameter.
  83. /// </summary>
  84. [SerializeField]
  85. public string GroupId;
  86. /// <summary>
  87. /// The Name of the parameter.
  88. /// </summary>
  89. [SerializeField]
  90. public string Name;
  91. }
  92. [Serializable]
  93. public struct SerializableParts
  94. {
  95. /// <summary>
  96. /// The ID of the part.
  97. /// </summary>
  98. [SerializeField]
  99. public string Id;
  100. /// <summary>
  101. /// The Name of the part.
  102. /// </summary>
  103. [SerializeField]
  104. public string Name;
  105. }
  106. #endregion
  107. }
  108. }