Unity使用BMFont.exe制作字体

  • BitMapFont操作
  • Unity操作

BitMapFont操作

  1. 首先美工准备好 没有压缩过 的图片资源
  2. 然后打开bmfont.exe 如图
    BMFont下载
  3. Edit–>clear all char in font 先把之前的资源清理掉
    Edit–>OpenImgageManager->Image->importImage,把所需要的图片资源全部添加进去

    设置对应的ID(ASCII码),鼠标移动到对应的文字就可以看到右下角的ID,然后点击OK
  4. Options->ExportOptions(如下设置得到xml 和png格式,width和height大小需要大于图片总大小);
  5. Options->Save bitmap font 制作完成,得到xml和png 两个文件;
  6. 如果图片包含汉字的需要新建一个txt文档把对应的字输入进去,Edit–>FontSettings设置为宋体, 后面导入的包含字体的txt文档才可以索引到对应的ASCII码值取添加对象,操作如下


Edit–>select chars from file选择编辑好的txt 文档(utf8)



就会找到对应的字,然后找到对应的ASCII码,可以在右下角查看,比如 倍–20493

后面的步骤从3开始一样,最后得到两个文件

Unity操作

  1. 把得到的两个文件拿到Unity中(如果发现xml文件属性中不显示内容,可以双击打开随便改动一下里面内容再恢复原来的就可以了,这个不知道上面原因。如果不显示内容是没办法把xml里面的信息解析出来的)
    新建一个Material,CustomFont

    Material 设置如下(shader–TextShader,FontTexture–就是之前得到的png)
    CustomFont 设置如下(把上面设置好的Material拖进来)
    新建一个空物体,挂上如下脚本(把Font 和 之前得到的xml文件拖进去)
using UnityEngine;
using System.Collections;
using System.Xml;
using System;public class CustomFontImportor : MonoBehaviour
{public Font font;public TextAsset textAsset;void Awake(){if (font == null || textAsset == null){//Debug.LogError("请设置font和textAsset.");return;}XmlDocument xmlDocument = new XmlDocument();xmlDocument.LoadXml(textAsset.text);int totalWidth = Convert.ToInt32(xmlDocument["font"]["common"].Attributes["scaleW"].InnerText);int totalHeight = Convert.ToInt32(xmlDocument["font"]["common"].Attributes["scaleH"].InnerText);XmlElement xml = xmlDocument["font"]["chars"];ArrayList characterInfoList = new ArrayList();for (int i = 0; i < xml.ChildNodes.Count; ++i){XmlNode node = xml.ChildNodes[i];if (node.Attributes == null){continue;}int index = Convert.ToInt32(node.Attributes["id"].InnerText);int x = Convert.ToInt32(node.Attributes["x"].InnerText);int y = Convert.ToInt32(node.Attributes["y"].InnerText);int width = Convert.ToInt32(node.Attributes["width"].InnerText);int height = Convert.ToInt32(node.Attributes["height"].InnerText);int xOffset = Convert.ToInt32(node.Attributes["xoffset"].InnerText);int yOffset = Convert.ToInt32(node.Attributes["yoffset"].InnerText);int xAdvance = Convert.ToInt32(node.Attributes["xadvance"].InnerText);CharacterInfo info = new CharacterInfo();Rect uv = new Rect();uv.x = (float)x / totalWidth;uv.y = (float)(totalHeight - y - height) / totalHeight;uv.width = (float)width / totalWidth;uv.height = (float)height / totalHeight;info.index = index;info.uvBottomLeft = new Vector2(uv.xMin, uv.yMin);info.uvBottomRight = new Vector2(uv.xMax, uv.yMin);info.uvTopLeft = new Vector2(uv.xMin, uv.yMax);info.uvTopRight = new Vector2(uv.xMax, uv.yMax);info.minX = xOffset;info.maxX = xOffset + width;info.minY = -yOffset - height;info.maxY = -yOffset;info.advance = xAdvance;info.glyphWidth = width;info.glyphHeight = height;characterInfoList.Add(info);}font.characterInfo = characterInfoList.ToArray(typeof(CharacterInfo)) as CharacterInfo[];Debug.Log("生成成功.");}
}

接下来运行一下,xml文件信息解析出来在Font文件属性中可以看到
恭喜您生成字体成功!!!
8. 现在就可以使用了,创建一个Text,输入对应的内容,Text设置如下
输入的”01倍”显示结果
完成!!!

Unity使用BMFont制作字体相关推荐

  1. BMFont制作字体

    使用BMFont制作字体 1. 取消选中字体 2. Edit -> Open Image Manager弹出 3. 在Image Manager中菜单栏里Image->Import Ima ...

  2. unity 使用BMFont 制作自定义字体

    unity cocos 使用BMFont,生成自定义字体 1.BMFont下载地址 http://www.angelcode.com/products/bmfont/ 本篇讲解如何利用美工提供的字符图 ...

  3. unity 3d中使用BMFont制作清晰字体

    1.大家可以在这免费下载到我们今天的主角工具BMFOnt. 下载BMFont 2.我们把它安装好后打开它,就是个样子了. 3.我们现在来制作我们想要的一些文字,这里我用来测试.新建一个txt文本文档, ...

  4. Unity3d之-使用BMFont制作美术字体

    一.需求 游戏开发中经常遇到需要以美术字(而非字库)做数字显示的情况,通常美术会提供一组包含单个数字(也会有其它字符)的图片,可能是一张整图,也可能是每个数字分开的散图. 在此我以一张整图这种情况为例 ...

  5. Unity 使用BitmapFont制作自定义字体

    BitmapFont下载地址BMFont - AngelCode.com (通过NGUI制作) 选择一个文件夹创建txt文本,在文本输入自定义内容或者在百度搜常用中文千字(按自己要求) 这里的冒号是中 ...

  6. BMfont制作图片中的自定义字体,无需字体文件

    目录 1.Bmfont简介 2.认识Bmfont 3.字体制作 4.Id如何确定   我们在手游开发中,经常会用到一些特殊字体!比如玩家的得分,金币数量,VIP特别显示等,这些特殊字符像.font格式 ...

  7. Unity教程||Unity添加中文字体||Unity知识记录--制作UI粒子特效

    Unity添加中文字体 ## 1.拷贝字体文件 拷贝C:\Windows\Fonts文件夹下,华文细黑常规文件到项目中 ## 2.下载中文字库 链接: https://pan.baidu.com/s/ ...

  8. 【Unity3D游戏开发】NGUI制作字体的三种方法 (二一)

    NGUI制作字体的三种方法 主要参考两篇博文: (1).NGUI制作字体的三种方法 (2).使用位图字体工具BMFont从图片生成自定义字体 1.BMFont下载地址 http://www.angel ...

  9. NGUI制作字体的三种方法

    主要参考两篇博文: (1).NGUI制作字体的三种方法 (2).使用位图字体工具BMFont从图片生成自定义字体 1.BMFont下载地址 http://www.angelcode.com/produ ...

  10. 关于Unity中的NGUI字体

    NGUI字体类型 1: UIFont字体,UIFont类实现的 2: TTF动态字体的使用 3: BBCode的特殊字体的使用 4: NGUI字体制作 5: BMFont字体制作和艺术字体的制作 6: ...

最新文章

  1. ocs(office communications server)通讯簿无法同步的问题集锦及解决方法
  2. php简单创建多级目录
  3. git 和 vim 学习笔记
  4. IntelliJ IDEA 修改包名
  5. 第一章:系统困境之 再努力也不能直接打开的死结
  6. opengl纹理单元
  7. 我在阿里云做前端代码智能化
  8. ubuntu mysql master slave_Ubuntu下MySQL5.5 配置主从(Master Slave)同步
  9. iis php5.3配置,windows+IIS 环境下以Fastcgi方式配置php 5.3.3的方法
  10. git 删除tag_Git常用命令
  11. Linus送出圣诞礼物:发布Linux 4.20,超35万行代码
  12. Git -- 搭建git服务器
  13. poi 操作excel的处理
  14. 《信号与线性系统分析(第五版)》吴大正主编 勘误
  15. PS_02_大师之路
  16. web-jsp(15) 购物车
  17. 表白神器(VBS编程)
  18. 5角星画法 android,Android Canvas绘制正多边形和正多角星
  19. leejianjun的博客 PHP生成word并可下载
  20. java进阶知识思维导图

热门文章

  1. 计算机整理碎片有用吗,电脑磁盘碎片整理有什么用?需要经常整理吗?
  2. 安卓开发360扫描出现病毒“盗号木马”
  3. Postgresql - cursor介绍
  4. excel之筛选、删除技巧
  5. 安装Win7系统,提示缺少所需的CD/DVD驱动器设备驱动程序
  6. Python实现历史记录功能
  7. Python自制“超级马里奥”小游戏
  8. iPhone6分辨率与适配
  9. 如何求一个平面区域中心点问题--编程实现
  10. Linux tmp目录的清理规则详解