Error reading skeleton JSON file for SkeletonData asset: qishi_SkeletonData
动画用spine3.8.75版本导出的spien文件,unity使用3.8版本spien插件,是识别不了骨骼数据的,具体错误如下图:
解决方法:
手动改更改spien文件版本为3.8
或者代码控制,当导入spine时自动修改版本
using System;
using System.IO;
using UnityEditor;
using UnityEngine;
using System.Text;
using Newtonsoft.Json.Linq;
using Spine;
/// <summary>
/// 修改spine文件 版本
/// </summary>
public class SpineImportSetting : AssetPostprocessor
{
//任何资源(包括文件夹)导入都会被调用的方法
void OnPreprocessAsset()
{
try
{
if (!this.assetPath.EndsWith(".json"))
return;
//先判断是否是 spine 文件
string msg = File.ReadAllText(this.assetPath, Encoding.UTF8);
JObject jo = JObject.Parse(msg);
string item = jo["skeleton"]["spine"].ToString();
if (!string.IsNullOrEmpty(item)&& item.ToString()!="3.8")
{
jo["skeleton"]["spine"] = "3.8";//修改版本为3.8版本
File.WriteAllText(this.assetPath, jo.ToString());
AssetDatabase.Refresh();
}
}
catch (Exception e)
{
Debug.LogError($"SpineImportSetting 异常 {e.Message}");
}
}
}
借鉴链接:
链接内使用的是LitJson解析的json,我使用的时候发现会出问题,
然后我用Json.NET,完美解决