unity第一次做自定义字体

unity Font字体替换 using System.Collections.Generic; using UnityEngine; using UnityEditor; using UnityEngine.UI; public class FontToolEditor : EditorWindow { private const string MENU_MAIN_WINDOW = "Tools/Font替换"; static Font defaultFont_1 = new Font("FZCuYuan"); stat 阅读详情

第一次弄,按照自己的理解来的,有需要的可以看一下。

主要需要三个东西:一张装着需要字体的png、一个对应的材质、一个font字体文件。

然后赋值材质到font,并配置好下面每个字的参数。

一开始我也不知道这些参数应该填什么东西,感觉有点懵,上网百度了下,发现有张图挺有用,看完就懂怎么弄了。

既然懂了那就开搞吧,先弄一张专门装我需要的字体的png图片,然后放入大小一样的字体图片,这样比较好判断。

我弄了40*55像素的字体

然后我用ps的切片工具划分好区域摆放的,也挺方便,然后将多余边裁剪

我这张图片规格是240*256的

然后导入unity,non power of 2 选择none显示原来的像素

font一个个数值填写判断太麻烦了,我自己写了个小工具

拉入我们的包含字体的纹理,填写好每个字的宽、高、每行的字数,字体的内容,点击创建字体就ok了。

以下是我写的代码:

没有那么的花里胡哨~有用的就看一下咯

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;


public class FontCreate : EditorWindow
{

    [MenuItem("FontTool/CreateFont")]
    static void CreateWindow()
    {
        EditorWindow.GetWindow<FontCreate>(true, "字体创建");
    }

    //要导入的png
    Texture2D texFont;
    //单个字体的宽
    float texWidth = 0;
    //单个字体的高
    float texHeight = 0;
    //png每行字的个数
    int eachLineNum = 0;
    //字体内容
    string str = "";
    private void OnGUI()
    {
        texWidth = EditorGUILayout.FloatField("每个字的宽度:", texWidth);
        texHeight = EditorGUILayout.FloatField("每个字的高度:", texHeight);
        eachLineNum = EditorGUILayout.IntField("每行多少个字:", eachLineNum);
        str = EditorGUILayout.TextField("字体内容:", str);
        GUILayout.BeginHorizontal();
        GUILayout.Label("字体的PNG:");
        texFont = (Texture2D)EditorGUILayout.ObjectField(texFont, typeof(Texture2D));
        GUILayout.EndHorizontal();

        if (GUILayout.Button("创建字体"))
        {
            CreateFont();
        }
    }

    void CreateFont()
    {
        //创建材质和Font文件
        Material material = new Material(Shader.Find("GUI/Text Shader"));

        material.mainTexture = texFont;
        material.name = texFont.name;

        Font font = new Font(texFont.name);

        CharacterInfo[] info = new CharacterInfo[str.Length];
        for (int i = 0; i < info.Length; i++)
        {
            info[i].index = (int)str[i];//获得字符的ASCII值
            info[i].uv.x = i * texWidth / texFont.width;
            info[i].uv.y = (i / eachLineNum) * texHeight / texFont.height;

            info[i].uv.width = texWidth / texFont.width;
            info[i].uv.height = texHeight / texFont.height;
            info[i].vert.x = 0;
            info[i].vert.y = 0;
            info[i].vert.width = texWidth;
            info[i].vert.height = -texHeight;
            info[i].advance = (int)texWidth;
        }
       
        font.characterInfo = info;
        font.material = material;
        AssetDatabase.Refresh();

        AssetDatabase.CreateAsset(material, "Assets/Font/" + material.name + ".mat");
        AssetDatabase.CreateAsset(font, "Assets/Font/" + font.name + ".fontsettings");//记得添加这个font的后缀名
    }
}

配置好后,点创建字体,生成材质和font文件

看一下font文件也配置好了

测试一下,没啥问题。

感觉比网上他们写的简单些,反正也够用,也不算很麻烦。

Unity 将图片制作为字体 在实际开发过程中我们经常会遇到根据美术提供的图片(1,2,3,4这种数字图片)来当字体使用,本文会详细为您讲解改如何将数字图片变成Unity中的字体。 阅读详情

相关推荐

Unity BMFont自定义字体

Unity中,使用位图字体工具BMFont从图片生成自定义字体流程 一、首先下载BMFont工具并安装:http://www.angelcode.com/products/bmfont/ 二、使用BMFont工具制作字体库 1、先做一些设定:"Options"->“Export options” 宽度设置为所有素材宽度总和,高度为素材的高度(长和宽可以设置得稍微大一点),位深设置...

w0100746363的专栏 3321

unity 创建中文自定义字体

选择窗口-文本 或TextMeshPro插件-字体资源创建工具(此已插件被unity官方收购)两者方法一样 将windows自带字体导入unity资源管理器并导入 Character Set(字符集生成)选择从文件生成字串符 导入常用汉字文件Atlas Resolution分辨率选择4096 4096点击生成.........

m0_67150972的博客 1884

如何用unity自作自定义字体

如何用unity自作自定义字体?本文以创建一个简单数字字体为例简述。首先,要有一张要做的字体的图:然后新建一个字体,叫colorfulFont, 右键,Create - Custom Font然后建一个材质,shader选择GUI,图就是上面的图:然后把这个材质赋给这个字体:然后选择字的个数,我这里边是11个数字,就写入11:然后以第三个元素为例,讲解每个元素的设置:1. index值,这个值是A...

allenwithno3的博客 2229

【Unity编辑器扩展】艺术字/自定义图片字体/TextMeshPro艺术字生成工具

不依赖第三方工具,仅使用Unity自带的Custom Font + 一张艺术字图集就能实现这个功能,但是为了便于使用,还需要依赖自动化工具,自动化把字符映射到图片纹理坐标,一键生成字体文件。自定义字体无法通过Text组件动态修改字体大小,因此需要为不同字号生成单独的字体文件,但材质和贴图共用,只消耗一个DC;艺术字在游戏中很常用,由于普通字体样式过于平淡,制作花里胡哨的文字图片作为游戏字体使用,这就是艺术字。Vert:字符的宽高信息, Y为高度的一半是为了垂直方向居中;4.支持字符与图集对照预览;

eFunTech 8299

Unity TextMeshPro使用中文字体

TextMeshPro是Unity新一代字体,是 Unity 的最终文本解决方案。它是 Unity UI Text 和旧版 Text Mesh 的完美替代方案。功能强大、易于使用、性能高效。目前TextMeshPro对中文的支持也还可以,不过默认不能用,需要自己成生成。本文就介绍TextMeshPro中文字体文件的生成方法,并且分析有可能出现中文乱码的原因。

qq_44284055的博客 1万+

Unity制作更换字体的插件

本篇文章来分享一下Unity如何制作更换字体的插件,可以快速更换场景中所有字体,更换所有预制体中的字体,更换指定路径下预制体中的字体。

grapefruit_lyy的博客 1963

Change Font in Unity3d

using UnityEngine; using System.Collections; using UnityEditor; using System.Collections.Generic; using UnityEngine.UI; public class ChangeFontEditor : EditorWindow { [MenuItem("Tools/Change Font")] static void CreateWindow() { GetWindow<ChangeF.

LuckyJoey的博客 236

【Unity TMP外部字体导入问题】TMP中文,unity如何制作中文字体

此时的字体可以理解为动态字体,直接向 Font Asset 里面添加是不能成功的, 因为 Font Asset 里面的字体可以理解为一张图片。显示的是图片中的元素。指定字符文件 Character File,将字符(游戏里常用的中文)添加到一个 txt 文本文件里面,添加你想要的字。那么如何将字体转化为Unity里面能够使用的 Font Asset 字体呢?指定 Source Font File,将刚才的字体添加到这里。保存生成的文件,点击 Save 存在电脑里。在网络上随意下载一个喜欢的字体文件。

m0_61561568的博客 4209

Unity/UI —— 使用字符图片自定义字体(Custom Font)

在Unity的UI设计中,我们经常会遇到需要自定义字体的情况。毕竟Unity自带的字体只有Arial一种,根本无法满足人民群众对于美的向往。当然,全能的Unity支持我们导入或创建字体,并可以在GUI Text和Text Mesh中使用。虽然可导入字体给我们提供了更多选择的余地,但也可能遇到选择的字体和游戏整体不搭或者仅需少量特定字符的情况。这种时候Custom Font就为我们自定义字体提供了可能。

路人王小二的博客 1万+

基于人脸识别的课堂考勤系统 tkinter+openpyxl+face_recognition

基于face_recognition库实现人脸考勤系统功能。利用Python的tkinter模块来设计考勤系统的图形化界面,此外结合openpyxl模块,实现将学生的信息和考勤打卡数据保存到表格中,方便查看和调用。该系统具备“刷脸打卡”、“新学生注册”等功能。............

lyx4949的博客 6965

LPC546xx USB接口VBUS阈值设计:从原理到实践,解决冷启动与可靠性问题

在嵌入式USB接口设计中,VBUS信号不仅是电源线,更是设备连接检测与电源管理的核心。其电压阈值直接决定了USB物理层(PHY)能否正确识别主机并建立有效会话。理解VBUS的会话有效电压(Votg_sess_valid)与PHY有效电压(VBUS_valid)等关键参数,是确保接口稳定性的基础。这些参数影响着设备枚举的成功率、通信稳定性以及长期可靠性。在工程实践中,尤其是对于集成PHY的微控制器如NPC LPC546xx系列,VBUS的连接方案(直接连接或通过稳压器)需要根据设备供电模式(自供电/总线供电)

weixin_30915275的博客 401

Unity字体资源:创建和管理自定义字体

在Unity中,字体不仅是UI设计的重要组成部分,还可以通过自定义字体增强游戏的视觉风格和用户体验。本文将介绍如何在Unity中导入字体文件、创建和管理自定义字体资源。

Unity打怪升级 4494

密码学:一文读懂数字证书

消息摘要算法用于验证数据完整性服务,对称加密算法和非对称加密算法用于保证数据保密性服务,数字签名算法用于抗否认性服务。数字证书集合了多种密码学算法:自身带有公钥信息,可完成相应的加密/解密操作;同时,还带有数字签名,可鉴别消息来源;且自身带有消息摘要信息,可验证证书的完整性;由于证书本身含有用户身份信息,因而具有认证性。

Shujie 2910

Unity中制作自定义字体的两种方式

Unity支持自定义图片字体(CustomFont),网上有很多教程,细节不尽相同,当概括起来基本就是两种方式。一是使用BMFont,导出图集和.fnt文件,再使用图集在Unity中设置得到字体。二是不用BMFont,使用Unity自带的Sprite类似图集的功能。两种方式原理相同,只是手段有区别。基本原理都是先有一张贴图,比如:需要知道的信息是贴图中每一个字符对应的ASCII码(例如0的ASCI...

Jince的博客 1万+

记录:rk3568适配开源GPU驱动(panfrost)

摘要:本文介绍了在RK3568芯片上移植Mali-G52 GPU驱动的过程。主要包括内核dts文件修改和内核配置调整两部分。

xuesong10210的博客 2237

告别纯文本RAG:用Dify 1.11.0多模态知识库,5步搭建一个能“读图”的智能客服助手

本文详细介绍了如何利用Dify 1.11.0多模态知识库构建智能视觉客服助手,通过5个步骤实现图片内容理解与专业回复。从准备多模态素材到配置知识库节点,再到设计工作流逻辑和性能优化,帮助开发者快速搭建高效客服系统,显著提升用户体验和问题解决效率。

weixin_30832143的博客 452

uGUI学习篇: Unity用脚本制作自定义字体

前言 自定义字体(位图字体)就如同精灵的图集一样,是一种从排列有字符的纹理中裁剪任意字符进行显示的结构。由于是直接显示字符图形,比普通的字体具有更丰富的表现力。 创建位图字体的软件 我们需要先制作位图字体 Bitmap Font Generator: http://www.angelcode.com/products/bmfont/ 位图字体创建后,将输出排列有字符的纹理以及记录有字符位置和大小等...

linxinfa的专栏 1858

从零搭建高通8255车载开发环境:QNX SDP、SDK配置与镜像编译全流程

本文详细介绍了如何从零搭建高通SA8255P车载开发环境,涵盖QNX SDP部署、SDK工具链配置到多系统镜像编译的全流程。特别针对SAIL安全岛镜像构建、QNX系统优化及Android系统资源分配等关键技术点提供实战指导,帮助开发团队高效完成车载系统开发与调试。

weixin_33582311的博客 364

【游戏开发实战】可爱的动物数字,教你在Unity中自制UGUI艺术字体(位图字体)(Bitmap Font Generator)

在Unity项目开发过程中,我们经常需要使用一些艺术性比较强的字体,特别是数字。这个时候,就需要我们制作自定义字体了。本文我就来教教大家如何制作吧。

linxinfa的专栏 6313

2025华为杯第二十二届中国研究生数学建模竞赛D题:低空湍流监测及最优航路规划 - 完整解题分析+完整MATLAB源码!(下篇)

🎓 本文收录于 《滚雪球学数学建模》专栏,本专栏专注于从零基础出发,带你循序渐进掌握数学建模的核心方法与思维路径。通过“滚雪球式”学习法,从最简单的生活化案例到经典建模工具,再到省赛、国赛真题实战演练,逐步积累知识与技能,帮助你搭建完整的建模体系。无论你是刚接触建模的新生,还是希望提升科研与竞赛能力的学者与工程师,本专栏都将为你提供一条清晰、高效、可实操的建模成长路线,助力你快速进阶,突破难点,迈向数学建模竞赛与实际应用的更高峰 🚀!

**My Coding Family** 1622

虚幻商城 Fab 免费资产自动化入库

Fab 商城的所有的免费资产自动化入库

一碗清深的博客 3642

Unity-ugui-自定义美术字体(图片字体fontsettings)

Unity自定义美术字体(图片字体fontsettings、customfont)开发过程有个很常见的需求:使用美术提供的图片来表现美术字体。

CrisFu的博客 1万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【Unity基础】Unity中如何导入字体?

本文介绍了使用FontAssetCreator导入字体的过程,并对其参数设置进行了说明

Tealc 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Unity / custom font自定义字体

Unity / custom font自定义字体 1、首先,在Unity的Project面板,右键Create->custom font 2、选择一张特殊字体的图片 这是图片的属性,记住宽度和高度的比例 (图片的类型为Default就可以了) 3、在Unity的Project面板,右键Create->Material 4、将图片添加到材质球上,材质球的Shader类型随意 ...

weixin_42144334的博客 2661

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【Unity】UGUI 如何使用CustomFont(自定义字体)

说在前面 这是我的第一篇博客, 之后慢慢试水搬一些自己曾用到的博客,还有一些自己尝试出来的东西。我深知自己还远远不够,若是有人看到了我的博客,请给我提意见吧~ 若是转载 ,请注明出处喵喵丸的Blog。正题 最近需求做一个界面上Text,想到当时用Cocos-2dx开发时,曾经用过的fnt、plist这一套东西,就想找一下在UGUI里面的Text如何使用自定义的字体。 最先找到的参考内容见

喵喵丸的Blog 3万+

Unity 位图字体

介绍在Unity中如何使用美术提供的艺术字体图片

qq_44809934的博客 1639
上一篇: BMFont 导出PNG图片没有合成
下一篇: Godaddy怎么解析域名指向自己的服务器?
小蛮蛮
博客等级 码龄11年 11粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值