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

相关文章

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很

Java常用注解扩展对比举例详解

《Java常用注解扩展对比举例详解》:本文主要介绍Java常用注解扩展对比的相关资料,提供了丰富的代码示例,并总结了最佳实践建议,帮助开发者更好地理解和应用这些注解,需要的朋友可以参考下... 目录一、@Controller 与 @RestController 对比二、使用 @Data 与 不使用 @Dat

Linux修改pip和conda缓存路径的几种方法

《Linux修改pip和conda缓存路径的几种方法》在Python生态中,pip和conda是两种常见的软件包管理工具,它们在安装、更新和卸载软件包时都会使用缓存来提高效率,适当地修改它们的缓存路径... 目录一、pip 和 conda 的缓存机制1. pip 的缓存机制默认缓存路径2. conda 的缓

Linux修改pip临时目录方法的详解

《Linux修改pip临时目录方法的详解》在Linux系统中,pip在安装Python包时会使用临时目录(TMPDIR),但默认的临时目录可能会受到存储空间不足或权限问题的影响,所以本文将详细介绍如何... 目录引言一、为什么要修改 pip 的临时目录?1. 解决存储空间不足的问题2. 解决权限问题3. 提

基于Python开发批量提取Excel图片的小工具

《基于Python开发批量提取Excel图片的小工具》这篇文章主要为大家详细介绍了如何使用Python中的openpyxl库开发一个小工具,可以实现批量提取Excel图片,有需要的小伙伴可以参考一下... 目前有一个需求,就是批量读取当前目录下所有文件夹里的Excel文件,去获取出Excel文件中的图片,并

Linux文件名修改方法大全

《Linux文件名修改方法大全》在Linux系统中,文件名修改是一个常见且重要的操作,文件名修改可以更好地管理文件和文件夹,使其更具可读性和有序性,本文将介绍三种在Linux系统下常用的文件名修改方法... 目录一、引言二、使用mv命令修改文件名三、使用rename命令修改文件名四、mv命令和rename命

Spring组件初始化扩展点BeanPostProcessor的作用详解

《Spring组件初始化扩展点BeanPostProcessor的作用详解》本文通过实战案例和常见应用场景详细介绍了BeanPostProcessor的使用,并强调了其在Spring扩展中的重要性,感... 目录一、概述二、BeanPostProcessor的作用三、核心方法解析1、postProcessB

mybatis-plus 实现查询表名动态修改的示例代码

《mybatis-plus实现查询表名动态修改的示例代码》通过MyBatis-Plus实现表名的动态替换,根据配置或入参选择不同的表,本文主要介绍了mybatis-plus实现查询表名动态修改的示... 目录实现数据库初始化依赖包配置读取类设置 myBATis-plus 插件测试通过 mybatis-plu

Linux下修改hostname的三种实现方式

《Linux下修改hostname的三种实现方式》:本文主要介绍Linux下修改hostname的三种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux下修改ho编程stname三种方式方法1:修改配置文件方法2:hFvEWEostnamectl命

Jmeter如何向数据库批量插入数据

《Jmeter如何向数据库批量插入数据》:本文主要介绍Jmeter如何向数据库批量插入数据方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Jmeter向数据库批量插入数据Jmeter向mysql数据库中插入数据的入门操作接下来做一下各个元件的配置总结Jmete