青海企业网站建设公司,dokan wordpress,建设银行梅李分行网站,南山做网站公司有哪些Unity如何使用Spine动画导出的动画 介绍使用版本Spine导出源文件修改Spine3.8.75版本导入Unity的3.8版本Spine的报错Unity辅助修改Json中版本号方式总结 介绍
最近公司在做抖音小程序的小游戏#xff0c;我们这边动画部分使用的是spine动画#xff0c;所以会有spine导入的问… Unity如何使用Spine动画导出的动画 介绍使用版本Spine导出源文件修改Spine3.8.75版本导入Unity的3.8版本Spine的报错Unity辅助修改Json中版本号方式总结 介绍
最近公司在做抖音小程序的小游戏我们这边动画部分使用的是spine动画所以会有spine导入的问题这里我正好说一下我目前使用的spine方式和美术导出的格式。
使用版本
这里使用版本也是开始之前必须确定好的事情因为你如果想要用Unity做抖音小游戏就必须要跟官方的插件控制好版本我们现在永的是2021.3.14f所以我们也需要配合Spine的版本Spine我们使用的4.0.64Unity的插件使用的spine4.0。
Spine下载购买连接 版本要求如下所示 Unity的Spine插件官网以及版本说明 这里可以根据上面图或者连接的要求去选择自己对应的版本。
Spine导出源文件修改 如上图所示这是我们动画导出来的动画文件这时候我们需要修改一下需要将后缀.atlas的文件加上一个.txt后缀如下图
Spine3.8.75版本导入Unity的3.8版本Spine的报错 如果遇见上面的这个问题我们看一下版本是否是相近的如果相近的基本上都可以去修改一下json文件解决。
打开json文件如下所示将3.8.75修改为3.8版本即可 修改完如下即可解决
Unity辅助修改Json中版本号方式
将如下代码放入到Unity中之后我们在拖动Spine文件到Unity中则会自动将 “spine”:“3.8.75” 修改为 “spine”:“3.8”
using LitJson;
using System;
using System.IO;
using System.Text;
using UnityEditor;
using UnityEngine;public class SpineImportSetting : AssetPostprocessor
{//任何资源包括文件夹导入都会被调用的方法void OnPreprocessAsset(){try{if (!this.assetPath.EndsWith(.json))return;//先判断是否是 spine 文件string msg File.ReadAllText(this.assetPath, Encoding.UTF8);JsonData jsonObj JsonMapper.ToObject(msg);JsonData item jsonObj[skeleton][spine];if (item ! null item.IsString item.ToString() ! 3.8){jsonObj[skeleton][spine] 3.8;//美术破解的 3.8.75 导入会报错string newjson JsonMapper.ToJson(jsonObj);File.WriteAllText(this.assetPath, newjson);AssetDatabase.Refresh();}}catch (Exception e){Debug.LogError($SpineImportSetting 异常 {e.Message});}}void OnPreprocessTexture(){Debug.Log(在纹理导入之前 获取通知);}void OnPostprocessTexture(){Debug.Log(在纹理导入之后 获取通知);}void OnPreprocessModel(){Debug.Log(在模型导入之前 获取通知);}void OnPostprocessModel(){Debug.Log(在模型导入之后 获取通知);}void OnPreprocessAudio(){Debug.Log(在音频导入之前 获取通知);}void OnPostprocessAudio(){Debug.Log(在音频导入之后 获取通知);}void OnPostprocessAllAssets(){Debug.Log(在一些资源被导入后调用(当资源进度条到达末端));}//所有的资源的导入删除移动都会调用此方法注意这个方法是static的public static void OnPostprocessAllAssets(string[] importedAsset, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths){foreach (string str in importedAsset){Debug.Log(importedAsset str);}foreach (string str in deletedAssets){Debug.Log(deletedAssets str);}foreach (string str in movedAssets){Debug.Log(movedAssets str);}foreach (string str in movedFromAssetPaths){Debug.Log(movedFromAssetPaths str);}}
}
需要LitJson的可以点击获取litjson资源链接
总结
上述是我对从Spine到导入Unity的一些相关的我遇到的点希望能对大家有帮助也感谢大家的支持