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}");
           }
       }
  
}

借鉴链接:https://blog.csdn.net/baidu_39447417/article/details/115190252
https://blog.csdn.net/baidu_39447417/article/details/115162746
链接内使用的是LitJson解析的json,我使用的时候发现会出问题,
然后我用Json.NET,完美解决

猜你喜欢

转载自blog.csdn.net/o_ojjj/article/details/122233011