unity 2017.4.3f1
1、代码

/**************************************************** 文件名: FontCustom.cs* 时  间: 2018-10-30* 作  者: AnyuanLzh* 描  述: ***************************************************/
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;public class FontCustom
{static string fontPath = "Assets/AllRes/assetbundle/games/common/fonts/digit1.fontsettings";static string targetString = "0123456789x+.-";static int texWidth = 336;static int texHeight = 36;static int padding = -2;[MenuItem("Tools/Lzh/生成数字字体")]public static void GetAllFileNameInOneDir(){//Debug.LogError("使用前请在代码中设置好配置:" + fontPath);//return;Debug.Log("字体文件不存在:" + fontPath);Font font = AssetDatabase.LoadAssetAtPath<Font>(fontPath);Debug.Log(font.name);if (font == null){Debug.LogError("字体文件不存在:"+ fontPath);return;}int num = targetString.Length;int fontWidth = texWidth / num;int fontHeight = texHeight;float uvWidth = 1f / num;List<CharacterInfo> charInfoList = new List<CharacterInfo>();for(int i=0; i<num; i++){CharacterInfo charInfo = new CharacterInfo();charInfo.index = (int)targetString[i];charInfo.uvBottomLeft= new Vector2(uvWidth * i, 0);charInfo.uvBottomRight = new Vector2(uvWidth * i + uvWidth, 0);charInfo.uvTopLeft = new Vector2(uvWidth * i, 1);charInfo.uvTopRight = new Vector2(uvWidth * i + uvWidth, 1);charInfo.minX = 0;charInfo.maxX = fontWidth - 0;charInfo.minY = 0 - (int)(fontHeight * 0.5f); // 减去后面这个值是为了让生成的生成能在垂直方向居中charInfo.maxY = fontHeight;charInfo.glyphWidth = fontWidth;charInfo.glyphHeight = fontHeight;charInfo.advance = fontWidth + padding;if (targetString[i] == '.'){charInfo.advance = (fontWidth + padding)-(int)(fontWidth*0.3f);}else if(targetString[i] == '1'){charInfo.advance = (fontWidth + padding) - (int)(fontWidth * 0.1f);}charInfoList.Add(charInfo);}font.characterInfo = charInfoList.ToArray();EditorUtility.SetDirty(font);AssetDatabase.SaveAssets();AssetDatabase.Refresh();}}

2、效果

Unity用脚本配置简单的数字艺术字体CustomFont相关推荐

  1. Unity游戏脚本简单学习

    Unity游戏脚本 1.脚本操作游戏对象 1.1.创建游戏对象 创建一个空的游戏对象 GameObject obj = new GameObject("obj1"); 用该方法创建 ...

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

    文章目录 一.前言 二.最终效果 三.Bitmap Font Generator制作字体 1.准备字体图片 2.下载Bitmap Font Generator 3.bmfont64.exe导入图片 4 ...

  3. 【Unity3D】Unity 脚本 ② ( Visual Studio 2019 中的 Unity 编译环境配置 | Unity 编辑器关联外部 C# 脚本编辑器 Visual Studio )

    文章目录 一. Visual Studio 2019 中的 Unity 编译问题 二. Unity 编辑器中关联外部 C# 脚本编辑器 三. 设置游戏运行时脚本更新行为 一. Visual Studi ...

  4. Unity 3D 脚本参考

    第一章  概述  Unity中的脚本(Script)由附加到游戏对象(GameObject)的自定义脚本对象(Custom  Script  Object)组成,它们又被称为行为.脚本对象中各种函数被 ...

  5. Unity 工具 之 VText 简单快速实现 文字 3D 效果,VText 的导入设置和简单使用(可支持中文字体)

    Unity 工具 之 VText 简单快速实现 文字 3D 效果,VText 的导入设置和简单使用(可支持中文字体) 目录 Unity 工具 之 VText 简单快速实现 文字 3D 效果,VText ...

  6. unity的安装配置和第一个游戏-unity开学第一课

    许多的小伙伴学编程语言其实是因为玩游戏,玩着玩着就想写游戏了,于是开始学习c++学习C#学习java,但相比之下C#的操作会更加容易,所以就开始学习unity来编游戏了.这里就就算是unity开学第一 ...

  7. Unity Mono脚本 加密

    加密环境 引擎版本:Unity3D 5.3.4 及更高版本 (使用Mono而并非IL2CPP) 操作系统:CentOS 6.2(Final) 加密环境:Android.IOS(暂定) 加密对象:C#源 ...

  8. 由于开发者通过接口修改了菜单配置_Android SDK开发艺术探索(四)个性化配置...

    一.前言 本篇是Android SDK开发艺术探索系列的第四篇文章.介绍了通过流式API设计思想优雅地实现SDK的自定义选项配置需求. 目录概览: 一.前言 二.SDK自定义配置2.1.什么是自定义配 ...

  9. Caddy - Web服务器的新秀 高性能 配置简单 动态代理 负载均衡

    Caddy - Web服务器的新秀 高性能 配置简单 动态代理 负载均衡 据Netcraft今年5月份放出了一篇统计文章中,Apache.Nginx和微软的IIS分别以45.61%.20.22%和7. ...

最新文章

  1. 【转载】谈谈我对Java中CallBack的理解
  2. iOS imageNamed 的缓存问题
  3. 嵌入式Linux下Qt的中文显示
  4. Typora、github中的markdown不同的行间距
  5. 长沙android工程师,长沙安卓工程师辅导
  6. c语言 wchar_t,一个【wchar_t】引发的学案
  7. paip.c++ bcb string 转换操作大总结.
  8. python移动文件到新的文件夹并重命名
  9. 《完全写作指南》读书笔记
  10. 转:二阶有源低通滤波器设计
  11. 语音控制c语言程序,基于52单片机的智能家居语音控制系统电路设计(含源程序+原理图)...
  12. /dev/sda is entire device, not just one partition. Refusing to make a filesystem here
  13. mysql 汉字笔画排序规则_SQL Server 与MySQL中排序规则与字符集相关知识的一点总结...
  14. EtherCAT 总线初见
  15. 书单|阿里、百度大咖联合强推的2018年必读好书清单
  16. Python百日百行代码挑战-day8,day9,day10,游戏实战系列-五子棋
  17. 向日葵的约定(歌词中日对译)
  18. java在win10和win7哪个好_老电脑win10和win7哪个好用
  19. Vue 开发的组件库
  20. 同步IO(阻塞IO、非阻塞IO), 异步IO的理解

热门文章

  1. 人大金仓安装教程(国产数据库安装)
  2. c语言实现二叉树的递归遍历
  3. java类创建 request_java中怎么创建一个Request对象
  4. 遗憾最小化框架:杰夫·贝佐斯离职创立Amazon背后的思考办法
  5. [转载红鱼儿]Delphi实现微信开发(3)如何使用multipart/form-data格式上传文件
  6. html5实现移动端的定位
  7. 手把手教你定制一款专属的微信夸夸机器人
  8. Some code changes cannot be hot swapped into a running virtual machine,
  9. 没有初中毕业证可以学计算机吗,读技校要初中毕业证吗 没有毕业证可不可以读技校...
  10. r语言lm函数找不到对象_错误:在R中找不到函数....