Unity资源批量改名

public class RenameTool:EditorWindow
    {
        private Vector2 scrollPos;
        private int charSize;
        private string originStr;
        private string targetStr;

        [MenuItem("CustomEditorWindow/RenameTool")]
        private static void OpenWindow() { 
           GetWindow<RenameTool>("Rename Tool").Show();
           
        }

        private static void Rename(string oreplaceStr,string treplaceStr)
        {
            foreach (UnityEngine.Object o in Selection.objects)
            {
                string path = AssetDatabase.GetAssetPath(o);
                string head = path.Substring(0, path.LastIndexOf('/'));
                string tail = path.Substring(path.LastIndexOf("/") + 1);
                string name=tail.Replace(oreplaceStr, treplaceStr);
                name=name.Substring(0, name.LastIndexOf('.'));
                Debug.Log(AssetDatabase.RenameAsset(path, name));
                AssetDatabase.SaveAssets();
                AssetDatabase.Refresh();
            }
           
            
            
        }
        private void OnGUI()
        {
            scrollPos = GUILayout.BeginScrollView(scrollPos);
            {
                charSize = GUI.skin.label.fontSize;
                GUILayout.Space(10);
                GUI.skin.label.fontSize = 24;
                GUI.skin.label.alignment = TextAnchor.MiddleCenter;
                GUILayout.Label("RenameTool");
                GUI.skin.label.fontSize = charSize;
                GUI.skin.label.alignment = TextAnchor.MiddleLeft;
                GUI.color = Color.white;
                GUILayout.Space(20);
            }
            GUILayout.BeginVertical();
            {
                #region text input
                GUILayout.BeginHorizontal();
                {
                    GUILayout.Label("OriginStr");
                    GUILayout.FlexibleSpace();
                    originStr = GUILayout.TextField(originStr, GUILayout.Width(140));
                }
                GUILayout.EndHorizontal();
                GUILayout.Space(10);

                GUILayout.BeginHorizontal();
                {
                    GUILayout.Label("TargetStr");
                    GUILayout.FlexibleSpace();
                    targetStr = GUILayout.TextField(targetStr, GUILayout.Width(140));
                }
                GUILayout.EndHorizontal();
                #endregion
                #region button
                GUILayout.Space(30);
                bool hasObject = (Selection.objects.Length > 0);
                GUI.enabled = hasObject;

                GUILayout.FlexibleSpace();
                if (!hasObject)
                {
                    GUI.color = Color.red;
                    GUILayout.Button("No Selected Objects!");
                    GUI.color = Color.white;

                }
                else
                {
                    if (GUILayout.Button("Rename"))
                    {
                        Rename(originStr, targetStr);
                    }
                }
                GUILayout.Space(20);
                #endregion
            }
            GUILayout.EndVertical();
            GUILayout.EndScrollView();
        }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值