简要代码如下:

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);
}
}
}

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

  

批量修改Project视图中Prefab的名字的更多相关文章

  1. [SQL]批量修改存储过程视图

    存储过程与视图适用 ); )='w_sp_Sms_ExpeOrKeepEmpl'; DECLARE C_TABLES CURSOR FAST_FORWARD FOR SELECT NAME FROM ...

  2. Unity查找Editor下Project视图中特定的资源

    [MenuItem("Tools/Check Text Count")] public static void CheckText () { //查找指定路径下指定类型的所有资源, ...

  3. Unity3D Editor模式下批量修改prefab

    最经遇到一个需要批量修改已经做好的prefab的问题,查了一些资料最终实现了但是还是不够完美,通过学习也发现unity的编辑器功能还是非常强大的.废话不多说直接上代码: [ExecuteInEditM ...

  4. 如何在Protel99se中批量修改元件的封装

    有时候需要批量修改元件的封装,可在原理图和PCB中批量修改.本文以批量修改电阻AXIAL0.3 的封装为AXIAL0.4 为例. 1. 在原理图中批量修改1.1. 方法1双击需要修改封装的其中一个元件 ...

  5. Unity3D中Prefab

    Prefab概念: Prefab是一种资源类型--存储在项目视图中的一种可反复使用的游戏对象.因而当游戏中须要非常多反复使用的对象.资源等时,Prefab就有了用武之地.它拥有下面特点: 能够放到多个 ...

  6. 3D Slicer Hide 3D Cube and Axis Labels Programmatically 使用代码隐藏三维视图中的方框和坐标轴标签

    在3D Slicer中,我们如果想在自己写的插件中来修改三维视图中的默认设置的话,那么首先就需要获得三维视图的结点,其类型为vtkMRMLViewNode,获得了这个结点后,我们就可以用代码来修改一系 ...

  7. [Unity工具]批量修改Texture

    BatchModifyTexture.cs using UnityEngine; using System.Collections; using UnityEditor; using System.I ...

  8. rename 批量修改文件名

    1.rename的用法 rename与mv的区别就是mv只能对单个文件重命名,而rename可以批量修改文件名 linux中的rename有两种版本,一种是C语言版的,一种是Perl版的.早期的Lin ...

  9. bat批量修改图片的名字实现(两种方法)

    问题描述: 业务中遇到需要批量修改大量图片的名字. 如下图,需要修改为图片名字“u=”之后和“,”之前的那一串 解决思路1: bat批处理,网上查找相关代码如下: @echo off SetLocal ...

随机推荐

  1. iOS图片加载速度极限优化—FastImageCache解析

    FastImageCache是Path团队开发的一个开源库,用于提升图片的加载和渲染速度,让基于图片的列表滑动 优化点 iOS从磁盘加载一张图片,使用UIImageVIew显示在屏幕上,需要经过以下步 ...

  2. elclipse/myeclipse web.xml自动提示补全问题

    默认情况下,在编辑web.xml时是没有自动提示功能的,只能在编辑完成保存时验证语法是否正确. 解决方法: 1.下载(保存)http://java.sun.com/xml/ns/j2ee/web-ap ...

  3. Struts2入门1 Struts2基础知识

    Struts2入门1 Struts2基础知识 20131130 代码下载: 链接: http://pan.baidu.com/s/11mYG1 密码: aua5 前言: 之前学习了Spring和Hib ...

  4. JQ例子:旋转木马

    使用JQ现实旋转木马超级简单,它看起来很复杂,动画好像很难实现,但其实不然. 效果图: <!DOCTYPE html> <html lang="en"> & ...

  5. LPC43XX JTAG Scan Chain

    Debug and trace functions are integrated into the ARM Cortex-M4. Serial wire debug and trace functio ...

  6. MAC下的命令操作

    打印环境变量:echo $PATH设置环境变量:export PATH=$PATH:/usr/local/git/bin应用:在git-scm下载git2.0.1版本,图形安装后,直接在终端敲giv ...

  7. 翻译:微软style的并行计算

    Parallel Microsoft-Style By Andrew Binstock, July 20, 2011 Note:主要是自动翻译,俺做了小量修改 1 Comment The actor ...

  8. linux下redis设置密码登录

    redis设置密码访问 你的redis在真是环境中不可以谁想访问就可以访问,所以必须要设置密码 设置密码的流程如下: vim  /etc/redis.conf #requirepass foobare ...

  9. Android 中的AIDL,Parcelable和远程服务

    Android 中的AIDL,Parcelable和远程服务      早期在学习期间便接触到AIDL,当时对此的运用也是一撇而过.只到近日在项目中接触到AIDL,才开始仔细深入.AIDL的作用    ...

  10. Android开发利器 - Charles + Genymotion 调试网络应用程序

    Charles默认是不监听Genymotion模拟器的网络动态的. 需要进行以下设置: 1. 打开你的Genymotion模拟器 2. 设置 -> Wifi -> 长按你的当前的网络连接 ...