首页 > 其他分享 >Unity Editor中文字体去重

Unity Editor中文字体去重

时间:2022-12-20 18:45:03浏览次数:139  
标签:exists builder 中文字体 Languages item Unity Editor iTerm var

[MenuItem("Tools/GenerateZhCharacter")]
public static void GenerateZhCharacter()
{
    var dataPath = Application.dataPath;
    var path = Path.Combine(dataPath, "Resources/zh_gene.txt");
    List<string> exists = new List<string>();
    StringBuilder builder = new StringBuilder();
    builder.Append("!#$%&'()*,-./0123456789:;<=>?ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_abcdefghijklmnopqrstuvwxyz{}~ ·ÀÂÄÇÈÉÊÎÔÖÜßàâäçèéêîïôöùûüŒœ—‘’“”…、。《》!(),:? 繁文");
    var localizationAsset = Resources.Load<LanguageSourceAsset>("I2Languages");//此处为I2插件的Asset,自行修改为自己使用的插件或者文本文件然后遍历
    Regex regex = new Regex(@"^[\u4E00-\u9FA5]{0,}$");
    foreach (var iTerm in localizationAsset.mSource.mTerms)
    {                
        Debug.Log(iTerm.Languages[4]);
        //繁体
        for (int i = 0; i < iTerm.Languages[4].Length; i++)
        {
            var item = iTerm.Languages[4][i].ToString();
            if (regex.IsMatch(item) && !exists.Contains(item))
            {
                builder.Append(item);
                exists.Add(item);
            }
        }
    }
    foreach (var iTerm in localizationAsset.mSource.mTerms)
    {                
        Debug.Log(iTerm.Languages[3]);
        //简体
        for (int i = 0; i < iTerm.Languages[3].Length; i++)
        {
            var item = iTerm.Languages[3][i].ToString();
            if (regex.IsMatch(item) && !exists.Contains(item))
            {
                builder.Append(item);
                exists.Add(item);
            }
        }
    }
    
    File.WriteAllText(path,builder.ToString());
    AssetDatabase.Refresh();
    Debug.Log("最终的字符串:" + builder.ToString());
}

 

标签:exists,builder,中文字体,Languages,item,Unity,Editor,iTerm,var
From: https://www.cnblogs.com/txfd/p/16994879.html

相关文章

  • IDEA插件开发 如何在UI 面板 里添加 EditorTextFiled 组件
    很早之前的笔记了,现在想当时的场景,这么蠢的问题竟然还头疼了很长时间,说到底还是不愿尝试,以此为戒。 问题IDEA插件开发,在编写.form格式文件的时候,同时会展示一个Pale......
  • Unity-C# 协程 IEnumerator 用法梳理
    引用协程为了使用协程,必须在文件头部引入:usingSystem.Collections;启动协程使用StartCoroutine(IEnumerator)来启动一个协程停止协程使用StartCoroutine(IEnumer......
  • Unity shader cube纹理采样
    使用cube进行纹理采样,可以很方便的预览全景图,可以用立方体去显示全景图,而不必非得用球甚至还可以用更复杂的网格去贴全景图,只要保证网格的形状和全景图里的内容能对应上就......
  • monaco-editor 显示多个提示的问题
    monaco-editor 当使用多个或者打开多次编辑器时,输入代码,会发现有多个重复提示,此时 monaco.languages.registerCompletionItemProvider已经注册多次了,使用一个全局变量......
  • Unity判断线和平面的交点
    //线和平面的交点privateVector3GetIntersectWithLineAndPlane(Vector3point,Vector3direct,Vector3planeNormal,Vector3planePoint){float......
  • How to mute all audio sound in unity? Unity中怎么样关闭所有音效
    AudioListener.pause=true;//orAudioListener.volume=0;Ref:https://answers.unity.com/questions/52109/how-do-i-mute-all-audio-sound.html......
  • 「Editorial」Codeforces Contest 1149
    C.TreeGenerator™容易发现树上一条路径一定形如))...)((...(。也就是对于任意子段,去掉匹配了的括号后还剩下的部分。而这个东西还是不太好表示,我们有如下引理:这个值......
  • Unity实现无缝大世界--地形
    大世界最重要的毫无疑问是地形了,地形也是一项比较古老,且一直在迭代更新的图形学技术。地形系统主体技术要点,一般围绕着LOD来展开。最近一些年,随着DrawInstance和GPUPipeli......
  • Unity获取手机本地应用以及调起apk安装、启动app、安装完成回调
    1、获取手机本地应用。创建AppInfo类和AppUtils类,用于接收获取到的应用列表。Android层代码AppInfo:publicclassAppInfo{privateDrawableimage;private......
  • Fckeditor使用手册
    Head:<scripttype="text/javascript"src="editor_path/fckeditor.js"></script>Html:<textareaid="content"name="content"style="width:100%"></textarea>Javascript:va......