博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
批量修改Project视图中Prefab的名字
阅读量:6547 次
发布时间:2019-06-24

本文共 2988 字,大约阅读时间需要 9 分钟。

简要代码如下:

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
lstAnimName = new List
(); 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 + 1, strClipName.Length - nIndex - 1); AnimationClip newClip = new AnimationClip(); EditorUtility.CopySerialized(charFbx.animation.GetClip(strClipName), newClip); string strNewAnim = AssetDatabase.GetAssetPath(charFbx); strNewAnim = strNewAnim.Substring(0, strNewAnim.LastIndexOf('/') + 1); 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(0, CharDirPath.LastIndexOf('/') + 1); // 清空默认动作 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); } }}

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

  

 

转载地址:http://vhedo.baihongyu.com/

你可能感兴趣的文章
记一次mapreduce读取不到输入文件的问题
查看>>
我的友情链接
查看>>
MariaDB集群Galera Cluster的研究与测试
查看>>
SONY控制键盘JX-11,EVI-D70P控制方案
查看>>
Spring AOP 之二:Pointcut注解表达式
查看>>
在普通台式机上搭建服务器虚拟化架构Esxi平台
查看>>
电话线路 30B+D 名词解释
查看>>
吉炬消费系统软件输入密码后无法打开软件界面故障处理
查看>>
Hibernate学习系列————注解一对多双向实例
查看>>
Cannot load from mysql.proc
查看>>
网络运维之 EX4200消除var分区使用过高的告警
查看>>
【最好的流程是没有流程】
查看>>
Apache Thrift 教程
查看>>
Python Epoll
查看>>
AS3歌词同步详解
查看>>
单例模式
查看>>
Linux环境NetBeans字体通用抗据齿解决方法
查看>>
Eclipse的花括号(brace)的输入偏好问题
查看>>
工作记录
查看>>
cucumber-api安装与试用
查看>>