在平常我们做unity项目的时候,工具类的使用对于我们来说是必不可少的组成部分,因为工具类可以解决实际问题或者是优化我们已经实现的功能。
当你在做项目的时,我们搭建完场景后,当前场景中你所创建的UI组件中的Text的字体,如果不符合你的要求,效果不好或者说是与你的游戏主题不搭;并且你的Text组件又创建的很多,也就是说如果你的UGUI界面已经搭完的情况下,想要更换一种字体的时候,逐个寻找Text更换字体的过程中工作量无形加大,很可能会遗漏并且机械的工作会使人疯狂,那么这个时候使用字体替换工具可以使你的操作起来自动化、更加方便快捷、节省时间精力。
字体替换工具,是可以帮助我们批量替换场景中Text组件中字体的工具。那你知道如何创建场景中Text的字体替换工具吗?我讲一下我是如何实现的,但是要注意呦!字体替换工具的实现方法并不是唯一,仅供参考哈!
首先讲一下我的思路:批量修改预制体中存在的Text组件的字体数据,指定某种字体替换到另外一种字体。创建新的Editor窗口和工具,通过代码获取和显示窗口,设置窗口名称并且在菜单窗口中显示Tool工具,点击按钮控件则更换字体,获取当前场景并且判断是否保存最后找到当前场景中的所有Text更换字体(当然,也可以是项目内的所有场景)。
接下来讲一下准备工作:
在Assets文件夹中新建一个文件夹命名为Editor并且创建一个脚本FontTools;
讲解代码:
1. 声明三个变量,分别是字体工具窗口为空的变量、替换上来的字体的变量、替换下去的字体的变量;
2. 在Unity的菜单栏中添加Tool工具;
3. 写一个展示窗口的方法ShowToolWindow();
①判断窗口是否为空,如果为空则获取窗口
②设置窗口的名称
③显示窗口
1. OnGUI方法:我们用来创建新的Editor窗口和工具来实现自己扩展编辑器的方法。
①OnGUI是用来创建调试工具、创建自定义属性面板、创建新的Editor窗口和工具达到扩展编辑器效果;
②EditorGUILayout.ObjectField表示选择物体;
③通过Font类来选择物体的参数为("被替换的字体", 被替换的字体, 字体类型, true);
④通过Font类来选择物体的参数为("替换的字体", 替换的字体, 字体类型, true);
⑤判断按钮控件是不是"一键替换" 是则调用更换字体方法。
2. 写一个更换字体的方法。
①获取当前场景是什么;
②判断当前场景是否保存,是则显示一个"请先保存当前场景"的对话框再返回;
③判断替换下去的字体和替换上来的字体是不是空的,是则显示一个对话框内容再返回;
④找到当前场景中所有的Text;
⑤显示一个"确定"的对话框;
⑥foreach循环一下场景中的Text,判断替换下去的字体是不是空的,不是空的再判断Text的字体等不等于替换下去的字体,如果不等于替换下去的字体则进行下一次循环,当替换下去的字体是空的时候,Text的字体则是替换上来的字体;
⑦显示一个"字体替换完成"的对话框。
附上代码:
代码完成后,在Unity中就可以看到通过代码添加的字体替换工具啦!如下图:
好啦,本篇分享的知识点篇幅过长,为了方便小伙伴们记忆与学习,我把它分为了上下两部分,今天就先分享到这里,我们下篇再见啦!
·END·
扫描二维码
⬇️
添加助教老师
⬇️
免费领取游戏策划4天训练营!
⬇️