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

相关文章

通过C#获取PDF中指定文本或所有文本的字体信息

《通过C#获取PDF中指定文本或所有文本的字体信息》在设计和出版行业中,字体的选择和使用对最终作品的质量有着重要影响,然而,有时我们可能会遇到包含未知字体的PDF文件,这使得我们无法准确地复制或修改文... 目录引言C# 获取PDF中指定文本的字体信息C# 获取PDF文档中用到的所有字体信息引言在设计和出

Python在固定文件夹批量创建固定后缀的文件(方法详解)

《Python在固定文件夹批量创建固定后缀的文件(方法详解)》文章讲述了如何使用Python批量创建后缀为.md的文件夹,生成100个,代码中需要修改的路径、前缀和后缀名,并提供了注意事项和代码示例,... 目录1. python需求的任务2. Python代码的实现3. 代码修改的位置4. 运行结果5.

python修改字符串值的三种方法

《python修改字符串值的三种方法》本文主要介绍了python修改字符串值的三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录第一种方法:第二种方法:第三种方法:在python中,字符串对象是不可变类型,所以我们没办法直接

使用Python实现批量访问URL并解析XML响应功能

《使用Python实现批量访问URL并解析XML响应功能》在现代Web开发和数据抓取中,批量访问URL并解析响应内容是一个常见的需求,本文将详细介绍如何使用Python实现批量访问URL并解析XML响... 目录引言1. 背景与需求2. 工具方法实现2.1 单URL访问与解析代码实现代码说明2.2 示例调用

Mysql8.0修改配置文件my.ini的坑及解决

《Mysql8.0修改配置文件my.ini的坑及解决》使用记事本直接编辑my.ini文件保存后,可能会导致MySQL无法启动,因为MySQL会以ANSI编码读取该文件,解决方法是使用Notepad++... 目录Myhttp://www.chinasem.cnsql8.0修改配置文件my.ini的坑出现的问题

使用Python制作一个PDF批量加密工具

《使用Python制作一个PDF批量加密工具》PDF批量加密‌是一种保护PDF文件安全性的方法,通过为多个PDF文件设置相同的密码,防止未经授权的用户访问这些文件,下面我们来看看如何使用Python制... 目录1.简介2.运行效果3.相关源码1.简介一个python写的PDF批量加密工具。PDF批量加密

Python按条件批量删除TXT文件行工具

《Python按条件批量删除TXT文件行工具》这篇文章主要为大家详细介绍了Python如何实现按条件批量删除TXT文件中行的工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.简介2.运行效果3.相关源码1.简介一个由python编写android的可根据TXT文件按条件批

Java实现批量化操作Excel文件的示例代码

《Java实现批量化操作Excel文件的示例代码》在操作Excel的场景中,通常会有一些针对Excel的批量操作,这篇文章主要为大家详细介绍了如何使用GcExcel实现批量化操作Excel,感兴趣的可... 目录前言 | 问题背景什么是GcExcel场景1 批量导入Excel文件,并读取特定区域的数据场景2

AI一键生成 PPT

AI一键生成 PPT 操作步骤 作为一名打工人,是不是经常需要制作各种PPT来分享我的生活和想法。但是,你们知道,有时候灵感来了,时间却不够用了!😩直到我发现了Kimi AI——一个能够自动生成PPT的神奇助手!🌟 什么是Kimi? 一款月之暗面科技有限公司开发的AI办公工具,帮助用户快速生成高质量的演示文稿。 无论你是职场人士、学生还是教师,Kimi都能够为你的办公文

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个