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<BMFontEditor>(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 中的以下类:
转载于:https://www.cnblogs.com/lancidie/p/9278796.html
BMFont制作美术字体相关推荐
- Unity3d之-使用BMFont制作美术字体
一.需求 游戏开发中经常遇到需要以美术字(而非字库)做数字显示的情况,通常美术会提供一组包含单个数字(也会有其它字符)的图片,可能是一张整图,也可能是每个数字分开的散图. 在此我以一张整图这种情况为例 ...
- UGUI使用BMFont制作美术字体二
还不多说,先来效果图: 是不是感觉比第一篇文章的工具更加高大上些,好了,现在开始讲开发流程,首先我们用到的工具依旧是BMFont,它的命令行在这里:bmfont.exe -c %1 -o %2 命令说 ...
- Egret 使用Texture Merger制作美术字体
在游戏中,有时候美术为了显示更好的字体效果,美术会自己制作字体,让程序显示出来,如何实现显示美术给的美术字体效果呢.程序可以使用美术导出图片,自己使用代码组合起来使用(效率低下,程序繁琐).或者是使用 ...
- unity 使用BMFont 制作自定义字体
unity cocos 使用BMFont,生成自定义字体 1.BMFont下载地址 http://www.angelcode.com/products/bmfont/ 本篇讲解如何利用美工提供的字符图 ...
- 基于Cocos Studio和BMfont制作艺术字体
通常在游戏开发制作的过程中,我们常常要用到各式各样的艺术字体,适合游戏风格的.独特的艺术字体能让游戏看起来更加美观.更加生动活泼.但问题是很多新手并不知道这些字体是怎么来的,这篇文章主要讲一下如何基于 ...
- unity 3d中使用BMFont制作清晰字体
1.大家可以在这免费下载到我们今天的主角工具BMFOnt. 下载BMFont 2.我们把它安装好后打开它,就是个样子了. 3.我们现在来制作我们想要的一些文字,这里我用来测试.新建一个txt文本文档, ...
- Unity制作美术字体、图片转字体库C#
前言:在遇到Unity支持的字体库之外的字体时,可以将每个字的图片集中生成一个字体库,用来Unity文本使用. 一.功能 1.字体图片设置 字体图片等比等分在一张图片上,方便Unity系统自处理 2. ...
- unity中美术字体的制作
unity中美术字体的制作 本次总结:客户端制作美术字体.我已知的两种方式:1.FontSetter插件.2.BMFont工具.这里比较推荐第一种插件,方便.快捷.简单. FontSetter插件 F ...
- Unity自定义美术字体(图片字体fontsettings)
目录 本文内容 效果 工具代码 制作美术字体 1 资源 1.1 资源方式 1.2 资源命名 1.3 资源命名配置 2 打包字体 2.1 创建字体 2.2 更新字体 3 字体使用 本文内容 开发过程有个 ...
最新文章
- Python 基础 二
- LOJ 3094 「BJOI2019」删数——角标偏移的线段树
- Bing.com在.NET Core 2.1上运行
- 梦想成真…教学–专业的Java开发人员:工具和最佳实践
- java 无侵入监控_MyPerf4J 一个高性能、无侵入的Java性能监控和统计工具
- Android(组件大全)
- Javascript 随机数函数 学习之一:产生服从均匀分布随机数
- 女朋友跟你说晚安之后仍然在线,我用Python制作脚本成功征服
- Swift3数组编辑
- 司空见惯 - 会议室名称
- 微信小程序之使用云存储
- 【游戏开发引擎】 实验3:Captain Blaster 2D 滚动射击游戏
- mysql导入错误1148,将CSV导入MySQL表会返回错误#1148
- 韦东山第3期嵌入式Linux项目-视频监控-1-v4l2视频框架分析
- Jquery-留言板
- 高德地图——切换路线的不同实现(驾车、公交、骑行)
- 常见算法思想2:递推法
- Word美化代码块样式
- 学会Zynq(10)lwIP简介
- 10G数据,1G内存排序问题
热门文章
- 网页视频播放器/视频播放插件
- 腐烂国度2计算机学教科书怎么使用,腐烂国度2全操作指南
- [Pandas] 多行合并成一行
- 网易组建Python数据分析学习群,3场直播课+6G学习资料免费领
- 论文笔记(三):深度学习在水文水资源中的应用综述
- ztree中获取某节点的所有叶子节点
- MKS SERVO42C 闭环步进电机 使用说明(三)串口通讯
- Geekbench 5 for Mac(检测系统性能工具)
- R语言绘图学习1(pairs,cpairs,饼图,三维饼图,高密度散点图,三维图,旋转三维图)
- 有什么软件可以测试自己性格,怎样测试自己的性格