Unity使用BMFont制作字体
Unity使用BMFont.exe制作字体
- BitMapFont操作
- Unity操作
BitMapFont操作
- 首先美工准备好 没有压缩过 的图片资源
- 然后打开bmfont.exe 如图
BMFont下载
- Edit–>clear all char in font 先把之前的资源清理掉
Edit–>OpenImgageManager->Image->importImage,把所需要的图片资源全部添加进去
设置对应的ID(ASCII码),鼠标移动到对应的文字就可以看到右下角的ID,然后点击OK - Options->ExportOptions(如下设置得到xml 和png格式,width和height大小需要大于图片总大小);
- Options->Save bitmap font 制作完成,得到xml和png 两个文件;
- 如果图片包含汉字的需要新建一个txt文档把对应的字输入进去,Edit–>FontSettings设置为宋体, 后面导入的包含字体的txt文档才可以索引到对应的ASCII码值取添加对象,操作如下
Edit–>select chars from file选择编辑好的txt 文档(utf8)
就会找到对应的字,然后找到对应的ASCII码,可以在右下角查看,比如 倍–20493
后面的步骤从3开始一样,最后得到两个文件
Unity操作
- 把得到的两个文件拿到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制作字体相关推荐
- BMFont制作字体
使用BMFont制作字体 1. 取消选中字体 2. Edit -> Open Image Manager弹出 3. 在Image Manager中菜单栏里Image->Import Ima ...
- unity 使用BMFont 制作自定义字体
unity cocos 使用BMFont,生成自定义字体 1.BMFont下载地址 http://www.angelcode.com/products/bmfont/ 本篇讲解如何利用美工提供的字符图 ...
- unity 3d中使用BMFont制作清晰字体
1.大家可以在这免费下载到我们今天的主角工具BMFOnt. 下载BMFont 2.我们把它安装好后打开它,就是个样子了. 3.我们现在来制作我们想要的一些文字,这里我用来测试.新建一个txt文本文档, ...
- Unity3d之-使用BMFont制作美术字体
一.需求 游戏开发中经常遇到需要以美术字(而非字库)做数字显示的情况,通常美术会提供一组包含单个数字(也会有其它字符)的图片,可能是一张整图,也可能是每个数字分开的散图. 在此我以一张整图这种情况为例 ...
- Unity 使用BitmapFont制作自定义字体
BitmapFont下载地址BMFont - AngelCode.com (通过NGUI制作) 选择一个文件夹创建txt文本,在文本输入自定义内容或者在百度搜常用中文千字(按自己要求) 这里的冒号是中 ...
- BMfont制作图片中的自定义字体,无需字体文件
目录 1.Bmfont简介 2.认识Bmfont 3.字体制作 4.Id如何确定 我们在手游开发中,经常会用到一些特殊字体!比如玩家的得分,金币数量,VIP特别显示等,这些特殊字符像.font格式 ...
- Unity教程||Unity添加中文字体||Unity知识记录--制作UI粒子特效
Unity添加中文字体 ## 1.拷贝字体文件 拷贝C:\Windows\Fonts文件夹下,华文细黑常规文件到项目中 ## 2.下载中文字库 链接: https://pan.baidu.com/s/ ...
- 【Unity3D游戏开发】NGUI制作字体的三种方法 (二一)
NGUI制作字体的三种方法 主要参考两篇博文: (1).NGUI制作字体的三种方法 (2).使用位图字体工具BMFont从图片生成自定义字体 1.BMFont下载地址 http://www.angel ...
- NGUI制作字体的三种方法
主要参考两篇博文: (1).NGUI制作字体的三种方法 (2).使用位图字体工具BMFont从图片生成自定义字体 1.BMFont下载地址 http://www.angelcode.com/produ ...
- 关于Unity中的NGUI字体
NGUI字体类型 1: UIFont字体,UIFont类实现的 2: TTF动态字体的使用 3: BBCode的特殊字体的使用 4: NGUI字体制作 5: BMFont字体制作和艺术字体的制作 6: ...
最新文章
- ocs(office communications server)通讯簿无法同步的问题集锦及解决方法
- php简单创建多级目录
- git 和 vim 学习笔记
- IntelliJ IDEA 修改包名
- 第一章:系统困境之 再努力也不能直接打开的死结
- opengl纹理单元
- 我在阿里云做前端代码智能化
- ubuntu mysql master slave_Ubuntu下MySQL5.5 配置主从(Master Slave)同步
- iis php5.3配置,windows+IIS 环境下以Fastcgi方式配置php 5.3.3的方法
- git 删除tag_Git常用命令
- Linus送出圣诞礼物:发布Linux 4.20,超35万行代码
- Git -- 搭建git服务器
- poi 操作excel的处理
- 《信号与线性系统分析(第五版)》吴大正主编 勘误
- PS_02_大师之路
- web-jsp(15) 购物车
- 表白神器(VBS编程)
- 5角星画法 android,Android Canvas绘制正多边形和正多角星
- leejianjun的博客 PHP生成word并可下载
- java进阶知识思维导图