using UnityEngine;
using System.Collections;
using System.IO;
using System.Collections.Generic;
using UnityEditor;
using UnityEditorInternal;
public class AnimationEditor
{
public static string ImagePath = "Assets/Buyu/RawResources/Arts/Fish";
[MenuItem("Assets/Tools/ReplaceAnimatonClipUseSprite")]
public static void ReplaceAnimatonClipUseSprite()
{
Object[] defaultAssetArr = Selection.GetFiltered(typeof(DefaultAsset), SelectionMode.Assets);
foreach (DefaultAsset defaultAsset in defaultAssetArr)
{
if (!System.IO.Directory.Exists(ImagePath + "/" + defaultAsset.name))
{
Debug.LogError("选中的文件夹" + defaultAsset.name + "不在Assets/Buyu/RawResources/Arts/Fish文件夹中");
return;
}
DirectoryInfo dictorys = new DirectoryInfo(ImagePath + "/" + defaultAsset.name);
ReplaceAnimatonClip(dictorys);
}
}
static void ReplaceAnimatonClip(DirectoryInfo dictorys)
{
if (!((System.IO.Directory.Exists(dictorys + "/Animation") && System.IO.Directory.Exists(dictorys + "/PNG"))))
{
Debug.LogError("选中的不是鱼的文件目录");
return;
}
Debug.Log(dictorys.ToString());
DirectoryInfo clipdirectory = new DirectoryInfo(dictorys + "/Animation");
DirectoryInfo pngdirectory = new DirectoryInfo(dictorys + "/PNG");
var clips = clipdirectory.GetFiles("*.anim");
var cliplist = new List<AnimationClip>();
foreach(var clip in clips)
{
AnimationClip c = AssetDatabase.LoadAssetAtPath<AnimationClip>(DataPathToAssetPath(clip.FullName));
string pngdir = Path.GetFileNameWithoutExtension(clip.Name);
var newclip = ReBuildAnimationClip(c, new DirectoryInfo(pngdirectory + "/" + pngdir), clipdirectory);
cliplist.Add(newclip)
unity 自动化创建Animation
最新推荐文章于 2025-07-03 19:44:50 发布