批量更换选中对象及子对象上的Text组件字体
来源:互联网 发布:飞书互动 知乎 编辑:程序博客网 时间:2024/05/22 10:47
以前项目中,负责整个项目的交互设计包括UI制作等等。制作UI时,有时候要批量更换UI元素上的字体。于是就写了一个编辑器工具,使用方法是先在“Hierarchy”面板中选中需要更换字体的UI根节点,然后在“MyTools”下面找到“ChangeFont”,点击即可弹出窗口,然后在窗口中选中字体,点击按钮“Are You Sure ? ”完成更换。更换后,会在Console面板输出哪些对象更换成功。
下面上代码
using UnityEngine;using UnityEngine.UI;using UnityEditor;/// <summary>/// 修改制定对象上的Text组件中的字体/// </summary>public class ChangeFonts : EditorWindow{ //用来存储选择的字体 static Font font; [MenuItem("MyTools/ChangeFont")] //创建窗口 static void ChangeTheFonts() { Rect wr = new Rect(0, 0, 250, 100); ChangeFonts window = (ChangeFonts)GetWindowWithRect(typeof(ChangeFonts), wr, true, "修改字体"); window.Show(); } void OnGUI() { //绘制字体选择框 font = EditorGUILayout.ObjectField("选择字体", font, typeof(Font), true) as Font; //绘制按钮且编辑点击按钮执行功能 if (GUILayout.Button("Are You Sure ? ", GUILayout.Width(100))) { GameObject go = Selection.activeGameObject; Text[] texts = go.GetComponentsInChildren<Text>(); //遍历找到的Text组件,并更换字体 foreach (Text item in texts) { item.font = font; Debug.Log("将" + item.gameObject.name + "的Text组件的字体更换为:" + font.name + "!"); } } } //刷新窗口 void OnInspectorUpdate() { this.Repaint(); }}
阅读全文
1 0
- 批量更换选中对象及子对象上的Text组件字体
- asp.net TreeView的选中CheckBox触发事件(父对象选中子对象全选)
- Unity3D 改变对象下所有子对象的组件属性
- 分析器错误信息: “asp:TextBox”的“Text”属性不允许子对象。
- 1,Jquery $(this)选择其子对象及复选框是否选中控制,2,find方法的运用
- iframe对象的子对象
- flex中获得子组件的父级对象和顶级对象
- flex中获得子组件的父级对象和顶级对象
- MySQL是怎么在源码层表达对象的-----Item对象及子对象解析(一)
- MySQL是怎么在源码层表达对象的-----Item对象及子对象解析(二)
- MySQL是怎么在源码层表达对象的-----Item对象及子对象解析(三)
- MySQL是怎么在源码层表达对象的-----Item对象及子对象解析(四)
- 点击子窗体给父窗体上的对象赋值
- 点击子窗体给父窗体上的对象赋值
- 子对象的初始化
- Android的ListView子Item选中改变TextView字体颜色
- 对象的上转型对象
- 对象的上转型对象
- Android里面的Attr、Style和Theme 解析
- java三大框架实现任务调度——IRemindService
- 常用的正则表达式
- NEUOJ 1176 Problem: Easy to improve
- iptables服务
- 批量更换选中对象及子对象上的Text组件字体
- 简单方法实现仿超级课程表界面
- weblogic下部署cxf服务端Cannot create a secure XMLInputFactory
- Android表单乱码问题解决
- LeetCode 62 Unique Paths
- apk下载安装
- Android就业面试技巧系列-技术篇1(内存优化)
- 125.关于iPhone像素和各机型显示的探究
- jvm gc日志分析