成都网站建设设计

将想法与焦点和您一起共享

怎么使用BMFont制作美术字体

怎么使用BMFont制作美术字体,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、网站建设、蛟河网络推广、重庆小程序开发公司、蛟河网络营销、蛟河企业策划、蛟河品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联建站为所有大学生创业者提供蛟河建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com

怎么使用BMFont制作美术字体

怎么使用BMFont制作美术字体

怎么使用BMFont制作美术字体

怎么使用BMFont制作美术字体

怎么使用BMFont制作美术字体

怎么使用BMFont制作美术字体

怎么使用BMFont制作美术字体

怎么使用BMFont制作美术字体

生成 Number.fnt、Number_0.png 两个文件,将其拖入Unity 相应位置,继续下一步

怎么使用BMFont制作美术字体

怎么使用BMFont制作美术字体

怎么使用BMFont制作美术字体

怎么使用BMFont制作美术字体

怎么使用BMFont制作美术字体

箭头所指就是我们要得到的最终目标,在文本处字体使用它就可以了。

在使用 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制作美术字体

看完上述内容,你们掌握怎么使用BMFont制作美术字体的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


标题名称:怎么使用BMFont制作美术字体
URL链接:http://chengdu.cdxwcx.cn/article/jchsod.html