博客
关于我
unity的ugui-3.生成图片字体
阅读量:105 次
发布时间:2019-02-25

本文共 2298 字,大约阅读时间需要 7 分钟。

图片字符

创建单一字符

首先我们需要一张字体图片:

在这里插入图片描述
放入unity,修改sprite mode为multipie多张图,以便分割,
在这里插入图片描述
点击sprite editor,如果报错请下载2d spite工具
在这里插入图片描述
然后点击Slice,会自动分割数字,也可以自己再调下位置
在这里插入图片描述
在Project下新建材质number1,修改材质的shader,并放入刚刚的图片
在这里插入图片描述
在新建custom font命为number1,将上面的材质球,拖入default material
在这里插入图片描述
index:为1的1asic码值
uv:数字1在图片中的位置,不过要在0-1之间
vert:为偏移量,不过高度要取负
advance:宽度
flipped:反向

在创建text,将刚才自定义的字体拖入font即可

在这里插入图片描述
这样只能一个字符,下面用代码的形式创建多个字符

用到的脚本api知识

AssetDatabase类

AssetDatabase.GetAssetPath(object)

该object在assets下的路径,返回string

AssetDatabase.LoadAssetAtPath< T>(string fontPath)

加载该object的路径,返回T

AssetDatabase.LoadAllAssetsAtPath(path);

//加载该路径下的所有资源,返回Object[]

AssetDatabase.CreateAsset(object, string matPath);

在对应路径下创建object,无返回值

//保存资源

AssetDatabase.SaveAssets();

//更新asset修改的资源

AssetDatabase.Refresh();

CharacterInfo

用来修改自定义字体面版的一些属性

在这里插入图片描述

创建多个字符

代码:

using System.Collections;using System.Collections.Generic;using System.IO;using UnityEditor;using UnityEngine;public class XFImageFontMaker : MonoBehaviour{       //MenuItem可以让我们在asset下的物体右键执行指定方法    [MenuItem("Assets/XFCreateImageFont")]    static void XFCreateImageFont()    {           if (Selection.objects == null) return;        for(int i=0;i
(fontPath); if(font==null) { font = new Font(); //创建材质修改shader Material mat = new Material(Shader.Find("GUI/Text Shader")); //_MainTex为设置游戏对象的主纹理 mat.SetTexture("_MainTex", texture); //在文件夹里创建材质 AssetDatabase.CreateAsset(mat, matPath); font.material = mat; //在文件夹里创建字体 AssetDatabase.CreateAsset(font, fontPath); } //设置字符 Sprite[] sprites = LoadSpriteByPath(texturePath); if(sprites.Length==0) { print("没有发现创建的字符,请分割一下字符"); return; } CharacterInfo[] characterInfos = new CharacterInfo[sprites.Length]; for(int i=0;i
sprites = new List
(); //加载该路径下的所有资源 Object[] objects = AssetDatabase.LoadAllAssetsAtPath(path); for(int i=0;i

在这里插入图片描述

操作:

勾选图片数字1的Advanced->Read/write enabled

在这里插入图片描述
点击sprite editor修改每个字符的name的最后一位,因为是以名字最后一个作为字体的index(ascii),点击apply
在这里插入图片描述
当希望你的字符像放在下中的位置,请将中心点pivot改为top center(相反)

再对数字一图片,右键点击刚才的脚本

在这里插入图片描述
就会多出字体和材质
在这里插入图片描述
再新建Text,将自定义字体数字1拖入Text 的Font,居中,随便输入数字测试
在这里插入图片描述
当我们修改脚本时,要重新单击图片右键后才会生效

缺点:

1.这种方式无法修改字符大小
2.只能对ascii码表里的字符生效

转载地址:http://jkv.baihongyu.com/

你可能感兴趣的文章
Nginx代理解决跨域问题(导致图片只能预览不能下载)
查看>>
Nginx代理配置详解
查看>>
Nginx代理静态资源(gis瓦片图片)实现非固定ip的url适配网络环境映射ip下的资源请求解决方案
查看>>
Nginx代理静态资源(gis瓦片图片)实现非固定ip的url适配网络环境映射ip下的资源请求解决方案
查看>>
nginx反向代理
查看>>
nginx反向代理、文件批量改名及统计ip访问量等精髓总结
查看>>
Nginx反向代理与正向代理配置
查看>>
Nginx反向代理及负载均衡实现过程部署
查看>>
Nginx反向代理是什么意思?如何配置Nginx反向代理?
查看>>
nginx反向代理解决跨域问题,使本地调试更方便
查看>>
Nginx反向代理配置
查看>>
Nginx启动SSL功能,并进行功能优化,你看这个就足够了
查看>>
nginx启动脚本
查看>>
Nginx在Windows上和Linux上(Docker启动)分别配置基本身份认证示例
查看>>
Nginx在Windows下载安装启动与配置前后端请求代理
查看>>
Nginx多域名,多证书,多服务配置,实用版
查看>>
nginx如何实现图片防盗链
查看>>
Nginx学习总结(13)——Nginx 重要知识点回顾
查看>>
Nginx学习总结(14)——Nginx配置参数详细说明与整理
查看>>
Nginx安装与常见命令
查看>>