美文网首页
Unity 从FBX中分离动画工具

Unity 从FBX中分离动画工具

作者: 我一点也不瓜 | 来源:发表于2019-08-19 14:38 被阅读0次

    当我们导入动画到Unity中时,会发现FBX和动画是绑定在一起的,当然我们可以展开FBX选择动画按Ctrl + D将动画单独拿出来并且可以修改,但是很多时候我们需要用到工具。下面就是使用工具批量将FBX中的动画文件提出来的工具。

    代码如下:(脚本文件需要放在Editor文件夹下)

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEditor;
    using System.IO;
    
    public class GetAnimation
    {
        [MenuItem("AnimationTool/GetAnimation",true)]
        static bool NotSelection()
        {
            return Selection.activeObject;     //判断是否选择的物体 没选择的话无法执行工具
        }
    
        [MenuItem("AnimationTool/GetAnimation")]
       static void Get()
        {
            string targetPath = Application.dataPath + "/AnimationClip";          //目录AnimationClip
            if (!Directory.Exists(targetPath))
            {
                Directory.CreateDirectory(targetPath);     //如果目录不存在就创建一个
            }
            UnityEngine.Object[] objects = Selection.GetFiltered(typeof(UnityEngine.Object), SelectionMode.Unfiltered);     //获取所有选中的物体
            foreach(UnityEngine.Object o in objects)     //遍历选择的物体
            {
                AnimationClip clip = new AnimationClip();      //new一个AnimationClip存放生成的AnimationClip
                string fbxPath = AssetDatabase.GetAssetPath(o);       //FBX的地址
                string name = o.name;     //FBX的名字
                AnimationClip fbxClip = AssetDatabase.LoadAssetAtPath<AnimationClip>(fbxPath);     //获取FBX上的animationClip
                if(fbxClip == null)
                {
                    Debug.Log("当前选择的文件不是带有AnimationClip的FBX文件");
                }
                else
                {
                    EditorUtility.CopySerialized(fbxClip, clip);    //复制
                    AssetDatabase.CreateAsset(clip, "Assets/AnimationClip/" + name + ".anim");    //生成文件
                }    
            }
        }
    }
    

    在Project页面选择你需要分离动画的FBX文件,使用工具就可以完成了。

    相关文章

      网友评论

          本文标题:Unity 从FBX中分离动画工具

          本文链接:https://www.haomeiwen.com/subject/eeissctx.html