怎么使用BMFont制作美术字体
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,怎么使用BMFont制作美术字体,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。生成 Number.fnt、Number_0.png 两个
千家信息网最后更新 2026年11月03日怎么使用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安全错误
数据库的锁怎样保障安全
科技赋能下的互联网金融
科技和互联网公司
互联网金融科技创新
互联网高科技企业
银川新华互联网科技学校地址
广州优美互联网科技
团飞科技与伯堂互联网服务平台
全球顶尖互联网科技公司
华夏恒生互联网科技013171
深圳艾果互联网通讯科技
四川慕妮娅互联网科技有限公司
滨湖区互联网智能科技产品有哪些
上海京穆互联网科技有限公司
互联网金融科技元年
卡尔迅互联网科技有限公司
上海同邻互联网科技有限公司规模
长沙渺峰互联网科技有限公司
互联网领先科技活动
互联网科技和医药行业
互联网科技创业有什么好项目
易通互联网络科技有限公司
富国互联网科技创新基金
隆华科技工业互联网
茂名市互联网科技产业园
互联网大会黑科技排名
深圳育鹏互联网科技有限公司招聘
中和天地互联网科技有限公司
工业互联网展湾科技股份有限公司
互联网金融金融科技
互联网科技创业有什么好项目