Unity3D 【编辑器扩展】一键批量修改预设UGUI Text字体

2024-06-19 19:38

本文主要是介绍Unity3D 【编辑器扩展】一键批量修改预设UGUI Text字体,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我们做项目的时候经常会遇到要换个字体的工作情况,比如美工同学觉着字体不好看或者要做其它语言版本什么的。遇到这种情况我们总不能一个标签一个标签的去找到它们把字体换了,累不累就不说了,万一漏了也是麻烦事。

转载请保留原文链接:http://blog.csdn.net/andyhebear/article/details/51393259

[csharp]  view plain copy
  1. using UnityEngine;  
  2. using UnityEngine.UI;  
  3. using UnityEditor;  
  4.   
  5. using System.Collections;  
  6. using System.Collections.Generic;  
  7.   
  8. //[InitializeOnLoad]  
  9. public class ChangeFontWindow : EditorWindow {  
  10.   
  11.     static ChangeFontWindow() {  
  12.         //toChangeFont = new Font("Arial");  
  13.         //toChangeFontStyle = FontStyle.Normal;  
  14.     }  
  15.       
  16.     [MenuItem("Window/Change Font")]  
  17.     private static void ShowWindow() {  
  18.      ChangeFontWindow cw=   EditorWindow.GetWindow<ChangeFontWindow>(true"Window/Change Font");  
  19.      
  20.     }  
  21.     Font toFont = new Font("Arial");  
  22.     static Font toChangeFont;  
  23.     FontStyle toFontStyle;  
  24.     static FontStyle toChangeFontStyle;  
  25.     private void OnGUI() {  
  26.         GUILayout.Space(10);  
  27.         GUILayout.Label("目标字体:");  
  28.         toFont = (Font)EditorGUILayout.ObjectField(toFont, typeof(Font), true, GUILayout.MinWidth(100f));  
  29.         toChangeFont = toFont;  
  30.         GUILayout.Space(10);  
  31.         GUILayout.Label("类型:");  
  32.         toFontStyle = (FontStyle)EditorGUILayout.EnumPopup(toFontStyle, GUILayout.MinWidth(100f));  
  33.         toChangeFontStyle = toFontStyle;  
  34.         if (GUILayout.Button("修改字体!")) {  
  35.             Change();  
  36.         }  
  37.     }  
  38.     public static void Change() {  
  39.         //获取所有UILabel组件  
  40.         if (Selection.objects == null || Selection.objects.Length==0) return;  
  41.         //如果是UGUI讲UILabel换成Text就可以  
  42.         Object[] labels = Selection.GetFiltered(typeof(Text), SelectionMode.Deep);  
  43.         foreach (Object item in labels) {  
  44.             //如果是UGUI讲UILabel换成Text就可以  
  45.             Text label = (Text)item;  
  46.             label.font = toChangeFont;  
  47.             label.fontStyle = toChangeFontStyle;  
  48.             //label.font = toChangeFont;(UGUI)  
  49.             Debug.Log(item.name + ":" + label.text);  
  50.             //  
  51.             EditorUtility.SetDirty(item);//重要  
  52.         }  
  53.     }  
  54.     private void OnEnable() {  
  55.     }  
  56.       
  57.     private void OnDisable() {  
  58.     }  
  59.       
  60.   
  61.       
  62.     private void Update() {  
  63.     }  
  64.       
  65.     private void OnDestroy() {  
  66.     }  
  67.       
  68. }  

这篇关于Unity3D 【编辑器扩展】一键批量修改预设UGUI Text字体的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1075964

相关文章

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

Python实现Excel批量样式修改器(附完整代码)

《Python实现Excel批量样式修改器(附完整代码)》这篇文章主要为大家详细介绍了如何使用Python实现一个Excel批量样式修改器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录前言功能特性核心功能界面特性系统要求安装说明使用指南基本操作流程高级功能技术实现核心技术栈关键函

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Python实现批量CSV转Excel的高性能处理方案

《Python实现批量CSV转Excel的高性能处理方案》在日常办公中,我们经常需要将CSV格式的数据转换为Excel文件,本文将介绍一个基于Python的高性能解决方案,感兴趣的小伙伴可以跟随小编一... 目录一、场景需求二、技术方案三、核心代码四、批量处理方案五、性能优化六、使用示例完整代码七、小结一、

C#实现一键批量合并PDF文档

《C#实现一键批量合并PDF文档》这篇文章主要为大家详细介绍了如何使用C#实现一键批量合并PDF文档功能,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言效果展示功能实现1、添加文件2、文件分组(书签)3、定义页码范围4、自定义显示5、定义页面尺寸6、PDF批量合并7、其他方法

AOP编程的基本概念与idea编辑器的配合体验过程

《AOP编程的基本概念与idea编辑器的配合体验过程》文章简要介绍了AOP基础概念,包括Before/Around通知、PointCut切入点、Advice通知体、JoinPoint连接点等,说明它们... 目录BeforeAroundAdvise — 通知PointCut — 切入点Acpect — 切面

Python批量替换多个Word文档的多个关键字的方法

《Python批量替换多个Word文档的多个关键字的方法》有时,我们手头上有多个Excel或者Word文件,但是领导突然要求对某几个术语进行批量的修改,你是不是有要崩溃的感觉,所以本文给大家介绍了Py... 目录工具准备先梳理一下思路神奇代码来啦!代码详解激动人心的测试结语嘿,各位小伙伴们,大家好!有没有想

shell脚本批量导出redis key-value方式

《shell脚本批量导出rediskey-value方式》为避免keys全量扫描导致Redis卡顿,可先通过dump.rdb备份文件在本地恢复,再使用scan命令渐进导出key-value,通过CN... 目录1 背景2 详细步骤2.1 本地docker启动Redis2.2 shell批量导出脚本3 附录总

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

Python实现批量提取BLF文件时间戳

《Python实现批量提取BLF文件时间戳》BLF(BinaryLoggingFormat)作为Vector公司推出的CAN总线数据记录格式,被广泛用于存储车辆通信数据,本文将使用Python轻松提取... 目录一、为什么需要批量处理 BLF 文件二、核心代码解析:从文件遍历到数据导出1. 环境准备与依赖库