简要代码如下:

using UnityEditor;
using UnityEngine;
using System.IO;
using System.Collections;
using System.Collections.Generic; public class RenameEffect
{
[MenuItem("XiYouEditor/Effect/RenameEffect-AddPrefix")]
static void Execute()
{
foreach (Object o in Selection.GetFiltered(typeof(Object), SelectionMode.DeepAssets))
{
if (!(o is Object))
continue;
AssetDatabase.RenameAsset(AssetDatabase.GetAssetPath(o), "P-" + o.name);
}
}
}

其处理拷贝动作文件:

using UnityEditor;
using UnityEngine;
using System.IO;
using System.Collections;
using System.Collections.Generic; public class AnimationBatch
{
[MenuItem("XiYouEditor/Animation/Copy Batch")]
static void Execute()
{
List<string> lstAnimName = new List<string>(); foreach (Object o in Selection.GetFiltered(typeof(Object), SelectionMode.DeepAssets))
{
if (!(o is GameObject))
continue;
if (!o.name.Contains("@"))
continue; GameObject charFbx = (GameObject)o; string strClipName = charFbx.name;
int nIndex = strClipName.LastIndexOf('@');
strClipName = strClipName.Substring(nIndex + , strClipName.Length - nIndex - ); AnimationClip newClip = new AnimationClip();
EditorUtility.CopySerialized(charFbx.animation.GetClip(strClipName), newClip); string strNewAnim = AssetDatabase.GetAssetPath(charFbx);
strNewAnim = strNewAnim.Substring(, strNewAnim.LastIndexOf('/') + );
strNewAnim += strClipName;
strNewAnim += ".anim"; if(!File.Exists(strNewAnim))
AssetDatabase.CreateAsset(newClip, strNewAnim); lstAnimName.Add(strClipName);
} foreach (Object o in Selection.GetFiltered(typeof(Object), SelectionMode.DeepAssets))
{
if (!(o is GameObject))
continue;
if (o.name.Contains("@"))
continue; GameObject charFbx = (GameObject)o; string CharDirPath = AssetDatabase.GetAssetPath(charFbx);
CharDirPath = CharDirPath.Substring(, CharDirPath.LastIndexOf('/') + ); // 清空默认动作
charFbx.animation.clip = null; foreach (string name in lstAnimName)
{
AnimationClip DestClip = (AnimationClip)AssetDatabase.LoadAssetAtPath(CharDirPath + name + ".anim", typeof(AnimationClip));
charFbx.animation.RemoveClip(name);
charFbx.animation.AddClip(DestClip, name);
} // 重设默认动作
AnimationClip defaultClip = charFbx.animation.GetClip("Idle1");
if (defaultClip != null)
charFbx.animation.clip = defaultClip; charFbx.animation.cullingType = AnimationCullingType.AlwaysAnimate; EditorUtility.SetDirty(o);
}
}
}

具体代码根据项目需求进行定制~

  

最新文章

  1. MySQL入门04-MySQL主从配置
  2. sqlalchemy多表联合查询(join)
  3. 由pthread_create引起的段错误
  4. 解决jQuery ajax跨域问题,Google、IE、Firefox亲测有效
  5. angularJS自定义指令间的“沟通”
  6. [SAP ABAP开发技术总结]日期函数
  7. 项目ppt演讲与阶段性总结
  8. struts1 和 struts2中Action什么时候实例化
  9. code manager tools svn服务安装配置
  10. AE开发 入门教程
  11. 自定义ShareDialog视图
  12. 理解hadoop的Map-Reduce数据流(data flow)
  13. ASP.NET MVC轻教程 Step By Step 12——客户端验证
  14. Oracle临时表on commit preserver rows和on commit delete rows区别
  15. 提高Delphi的编译速度(bpl和bcp)
  16. Handler总结
  17. hdu3974(线段树+dfs)
  18. 第二章 JavaScript核心语法
  19. 本地复现Flash 0day漏洞(CVE-2018-4878)
  20. Mybatis框架基础支持层——反射工具箱之Reflector&amp;ReflectorFactory(3)

热门文章

  1. wicket基本控件使用笔记
  2. Leetcode 160 Intersection of Two Linked Lists 单向链表
  3. 几种web数据渲染模板对比
  4. 扩展easyui 的表单验证
  5. SIFT 特征提取算法总结
  6. 神舟K650c i7(W350STQ)上成功装好Mac OS X 10.9,兼谈如何安装WinXP、7、8.1、OSX、Ubuntu五系统(Chameleon、MBR)
  7. Dell U2913WM使用感受
  8. HashSet HashTable HashMap的区别 及其Java集合介绍
  9. JS回到顶部代码小记
  10. C#按需序列化对象为Json字符串