怎么使用BMFont制作美术字体
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,怎么使用BMFont制作美术字体,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。生成 Number.fnt、Number_0.png 两个
千家信息网最后更新 2025年12月02日怎么使用BMFont制作美术字体
怎么使用BMFont制作美术字体,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
生成 Number.fnt、Number_0.png 两个文件,将其拖入Unity 相应位置,继续下一步

箭头所指就是我们要得到的最终目标,在文本处字体使用它就可以了。
在使用 Tools -> BMFont Maker 之前得先完成以下步骤:
using UnityEngine; using UnityEditor; public class BMFontEditor : EditorWindow { [MenuItem("Tools/BMFont Maker")] static public void OpenBMFontMaker() { EditorWindow.GetWindow(false, "BMFont Maker", true).Show(); } [SerializeField] private Font targetFont; [SerializeField] private TextAsset fntData; [SerializeField] private Material fontMaterial; [SerializeField] private Texture2D fontTexture; private BMFont bmFont = new BMFont(); public BMFontEditor() { } void OnGUI() { targetFont = EditorGUILayout.ObjectField("Target Font", targetFont, typeof(Font), false) as Font; fntData = EditorGUILayout.ObjectField("Fnt Data", fntData, typeof(TextAsset), false) as TextAsset; fontMaterial = EditorGUILayout.ObjectField("Font Material", fontMaterial, typeof(Material), false) as Material; fontTexture = EditorGUILayout.ObjectField("Font Texture", fontTexture, typeof(Texture2D), false) as Texture2D; if (GUILayout.Button("Create BMFont")) { BMFontReader.Load(bmFont, fntData.name, fntData.bytes); //借用NGUI封装的读取类 CharacterInfo[] characterInfo = new CharacterInfo[bmFont.glyphs.Count]; for (int i = 0; i < bmFont.glyphs.Count; i++) { BMGlyph bmInfo = bmFont.glyphs[i]; CharacterInfo info = new CharacterInfo(); info.index = bmInfo.index; info.uv.x = (float)bmInfo.x / (float)bmFont.texWidth; info.uv.y = 1 - (float)bmInfo.y / (float)bmFont.texHeight; info.uv.width = (float)bmInfo.width / (float)bmFont.texWidth; info.uv.height = -1f * (float)bmInfo.height / (float)bmFont.texHeight; info.vert.x = 0; info.vert.y = -(float)bmInfo.height; info.vert.width = (float)bmInfo.width; info.vert.height = (float)bmInfo.height; info.width = (float)bmInfo.advance; characterInfo[i] = info; } targetFont.characterInfo = characterInfo; if (fontMaterial) { fontMaterial.mainTexture = fontTexture; } targetFont.material = fontMaterial; fontMaterial.shader = Shader.Find("UI/Default");//这一行很关键,如果用standard的shader,放到Android手机上,第一次加载会很慢 Debug.Log("Create Font <" + targetFont.name + "> Success"); Close(); } } } 将这个类放入工程中,这样在 Tools 中才可以找到 BMFont Maker,它的作用是赋予字体的详细信息,由于它是借助 NGUI 来实现的工具,所以得加上 NGUI 中的以下类:

看完上述内容,你们掌握怎么使用BMFont制作美术字体的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
字体
美术
制作
内容
方法
更多
问题
束手无策
为此
一行
两个
位置
作用
信息
关键
原因
对此
就是
工具
工程
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据量太多用什么数据库好
大连2年软件开发工资
浪潮服务器默认管理密码
腾讯轻量云服务器装08系统
网络安全等级评定中心
羊城杯网络安全2021
菲律宾服务器选购
网络安全产业将超600亿元
炫舞体验服务器下载
长沙苹果软件开发前十名
宁职计算机网络技术
魏韩网络技术有限公司
鹤壁飞鸿网络技术有限公司
广州小程序软件开发解决方案
蓝装网络技术有限公司
g口服务器在线
如何查看数据库中表的索引
网络安全选项重置
厦门网络安全技能竞赛
如果提升软件开发效率
深圳正义网络技术
阳朔租房软件开发
数据库分库技巧
广州通用服务器厂家供应
安徽省网络安全宣传先进个人
戴尔服务器正常屏幕不显示
宣城自建存储服务器找哪家
菲律宾软件开发工资
浙江正规软件开发设施应用
微软net软件开发工程师好学吗