少年修仙传客户端基础资源
hch
2020-12-11 6ab4f430f523d7a85589c7eef9523f6fa6c48aea
0312 更新批量文字工具
2个文件已修改
1个文件已删除
2个文件已添加
130 ■■■■■ 已修改文件
Assets/Editor/ScriptEditor/SecondFrameLoaderEditor.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/Tool/ChangePrefabsFont.cs 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/Tool/ChangePrefabsFont.cs.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/Tool/ImportPrefabsWords.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/XLua/Src/Editor/LuaIde.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/ScriptEditor/SecondFrameLoaderEditor.cs
@@ -17,6 +17,6 @@
    private void Reload()
    {
        (target as SecondFrameLoader).Reload();
        //(target as SecondFrameLoader).Reload();
    }
}
Assets/Editor/Tool/ChangePrefabsFont.cs
New file
@@ -0,0 +1,98 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System.IO;
using UnityEngine.UI;
using Snxxz.UI;
public class ChangePrefabsFont : EditorWindow {
    [MenuItem("策划工具/更换字体")]
    public static void Open()
    {
        EditorWindow.GetWindow(typeof(ChangePrefabsFont));
    }
    Font toChange;
    static Font toChangeFont;
    Font fromFont;
    static Font fromChangeFont;
    void OnGUI()
    {
        GUILayout.Label("原字体");
        fromFont = (Font)EditorGUILayout.ObjectField(fromFont, typeof(Font), true, GUILayout.MinWidth(100f));
        fromChangeFont = fromFont;
        GUILayout.Label("替换字体");
        toChange = (Font)EditorGUILayout.ObjectField(toChange, typeof(Font), true, GUILayout.MinWidth(100f));
        toChangeFont = toChange;
        if (GUILayout.Button("更换"))
        {
            Change();
        }
    }
    public static void Change()
    {
        //这个很重要,博主发现如果没有这个代码,unity是不会察觉到编辑器有改动的,自然设置完后直接切换场景改变是不被保存
        //的  如果不加这个代码  在做完更改后 自己随便手动修改下场景里物体的状态 在保存就好了
        //Undo.RecordObject(t, t.gameObject.name);
        //t.font = toChangeFont;
        string topFilePath=Application.dataPath + "/ResourcesOut/UI";
        string[] filepaths1 = Directory.GetFiles(topFilePath, "*.prefab", SearchOption.AllDirectories);
        topFilePath = Application.dataPath + "/ResourcesOut/BuiltIn";
        string[] filepaths2 = Directory.GetFiles(topFilePath, "*.prefab", SearchOption.AllDirectories);
        string[] filepaths = new string[filepaths1.Length + filepaths2.Length];
        filepaths1.CopyTo(filepaths, 0);
        filepaths2.CopyTo(filepaths, filepaths1.Length);
        Debug.LogFormat("预修改预制体字体总数:{0}", filepaths.Length);
        int startIndex = 0;
        int a = 0;
        int i = 0;
        EditorApplication.update = delegate () {
            string file = filepaths[startIndex];
            file = file.Substring(file.IndexOf("Assets"));
            bool isCancel = EditorUtility.DisplayCancelableProgressBar("预制体文字-"+filepaths.Length, file, (float)startIndex / (float)filepaths.Length);
            GameObject _prefab = AssetDatabase.LoadAssetAtPath<GameObject>(file);
            Text[] transArr14 = _prefab.GetComponentsInChildren<Text>(true);
            a += transArr14.Length;
            foreach (Text item in transArr14)
            {
                // /Debug.LogFormat("{0}包含文字 {1}-{2}", file, item.name, item.text);
                if (item.font == fromChangeFont)
                {
                    item.font = toChangeFont;
                    EditorUtility.SetDirty(_prefab);
                    i++;
                }
            }
            startIndex++;
            if (isCancel || startIndex >= filepaths.Length) {
                EditorUtility.ClearProgressBar();
                EditorApplication.update = null;
                startIndex = 0;
                AssetDatabase.SaveAssets();
                AssetDatabase.Refresh();
                Debug.LogFormat("字体批量修改成功--{0}", i);
            }
        };
    }
}
Assets/Editor/Tool/ChangePrefabsFont.cs.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 90b64cc7949e75542ba2ec380e016e14
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Editor/Tool/ImportPrefabsWords.cs
@@ -27,6 +27,7 @@
        string[] lines = File.ReadAllLines(writePath, Encoding.UTF8);
        int startIndex = 0;
        int changeCnt = 0;
        EditorApplication.update = delegate () {
            string[] info = lines[startIndex].Split('\t');
            startIndex++;
@@ -66,9 +67,16 @@
            Text item = transArr[index];
            if (item.name == name)
            {
                if (item.text != content)
                {
                item.text = content;
                    item.fontSize = item.fontSize - 2;
                EditorUtility.SetDirty(_prefab);
            }else
                    changeCnt++;
                    //Debug.LogFormat("字体批量文件--{0} , {1}", file, index);
                 }
            }
            else
            {
                Debug.LogErrorFormat("第{0}行替换失败{1},{2}", startIndex+1, file, name);
            }
@@ -81,6 +89,7 @@
                startIndex = 0;
                AssetDatabase.SaveAssets();
                AssetDatabase.Refresh();
                Debug.LogFormat("字体批量修改成功--{0}", changeCnt);
            }
        };
Assets/XLua/Src/Editor/LuaIde.meta
File was deleted