zoukankan      html  css  js  c++  java
  • 批量修改Project视图中Prefab的名字

    简要代码如下:

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

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

      

  • 相关阅读:
    vmware里面的名词 vSphere、vCenter Server、ESXI、vSphere Client
    SQL Server2014 SP2新增的数据库克隆功能
    看完SQL Server 2014 Q/A答疑集锦:想不升级都难!
    Windows Server 2012 NIC Teaming 网卡绑定介绍及注意事项
    最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目
    基于本地存储的kvm虚拟机在线迁移
    SQL Server 数据加密功能解析
    android开发之GestureDetector手势识别(调节音量、亮度、快进和后退)
    Datazen介绍
    jquery智能弹出层,自己主动推断位置
  • 原文地址:https://www.cnblogs.com/sifenkesi/p/3544374.html
Copyright © 2011-2022 走看看