public class ActionConvetTool
{
    [MenuItem("ActionTools/动作处理")]
    public static void ActionConvert()
    {
        UnityEngine.Object[] arr = Selection.GetFiltered(typeof(UnityEngine.Object), SelectionMode.Unfiltered);
        for (int index = 0; index < arr.Length; index++)
        {
            string strFilePath = AssetDatabase.GetAssetPath(arr[index]);
            Debug.Log("filePath=" + strFilePath);

            ActionScriptable action = ScriptableObject.CreateInstance<ActionScriptable>();

            UnityEngine.Object[] objects = AssetDatabase.LoadAllAssetsAtPath(strFilePath);
            if (objects == null || objects.Length == 0)
            {
                return;
            }

            for (int i = 0; i < objects.Length; i++)
            {
                if (objects[i] is AnimationClip)
                {
                    action.aClip = objects[i] as AnimationClip;
                    string strSerializeFile = "Assets/Resources/Action/";
                    string strDir = Application.dataPath + "/Resources/Action";
                    if (!Directory.Exists(strDir))
                    {
                        Directory.CreateDirectory(strDir);
                    }
                    string strFileName = objects[i].name + ".asset";
                    string strFile = Application.dataPath + "/Resources/Action/" +strFileName;
                    if (File.Exists(strFile))
                    {
                        File.Delete(strFile);
                    }

                    AssetDatabase.CreateAsset(action, strSerializeFile+strFileName);

                    AssetDatabase.SaveAssets();
                    AssetDatabase.Refresh();

                    break;
                }
            }
        }
    }
}

注意事项:需要先选中fbx模型然后导出

posted on 2019-01-10 14:20  jackdesk  阅读(3772)  评论(0编辑  收藏  举报