废话不多说,使用TexturePacker制作可供TextMesh Pro使用的Sprite Asset(不喜勿喷)
软件版本:
Unity版本 2017.3.1f1 官网下载
TextMesh Pro版本 1.2.2 Unity Asset Store内置免费
TexturePacker版本4.8.2 https://www.codeandweb.com/texturepacker官网下载最新版即可
一、制作Font Asset中文字
Unity中导入TextMesh Pro插件
从系统字库中随便找一个支持中文的字体,我使用的是 华文楷体 常规
准备一个TxT文件,里面放着你想要使用的中文字(TxT的编码格式需要设置成UTF-8)
下面打开字*作面板
然后按照顺序设置
第一步把从系统字库中找到的字体拖进去,第二步字符集设置选择从文件设置,第三步在新打开的输入框内拖入之前提到的TxT文件
第四步点击按钮浏览图集,右边出现你TxT文件中的字就是成功啦,第五步点击保存Font Asset,中文字体就制作成功了.(其余的设置都是字面意思自己调试吧)
最后将制作的字体拖到组件内就可以使用了.
二、制作Sprite Asset
下载TexturePacker PC版安装完毕后直接打开,可能会弹出窗口,选择JSON(Array)
选择第三个选项
如果没有弹出可以自己点击之后选择
然后将要做成图集的资源拖入中间灰色的部分
然后在右上角选择Data File的输出路径和Texture File的输出路径,要指到Unity工程下,然后直接保存,最后点击Publish sprite sheet
保存成功
然后回到第一步Framework选择Unity Texture2D,然后Data File 和Texture File同名同路径覆盖一次然后再次
点击Publish sprite sheet
保存成功
回到Unity中,会有如下三个文件,png的图集,Json格式的图集信息和.tpsheet格式的图集信息
然后打开Sprite Importer面板
第一个选择框内拖入Json文件,第二个框内拖入图集,然后一次点击下面的两个按钮,出现中间的信息说明成功,然后保存文件到工程内
生成的TMP_SpriteAsset文件
然后搜索在工程内搜索TMP Settings文件,把Default Sprite Asset替换成刚才做的文件
这时候就要可以使用图集了,但是按照这种步骤会发生一些问题,就是图集切割的坐标是乱的,具体为什么我也不太清楚.
<sprite=> 是标准格式,id那里填写图集中对应的id即可显示图片,这里图片显示是不正确的
后来经过测试发现是图集信息的X和Y的值不对所以在上面做了两次生成图集配置文件,这时候就需要用代码稍微修改一下了(请无视我的变量命名)
- using UnityEngine;
- using TMPro;
- using System.IO;
- public class HUDTest : MonoBehaviour
- {
- [SerializeField]
- private TMP_SpriteAsset m_TMP_SpriteAsset;
- [SerializeField]
- private string m_DefaultAssetFileName;
- private void Awake()
- {
- string str = File.ReadAllText(Application.dataPath + "/"+m_DefaultAssetFileName+".tpsheet");
- string[] strArr = str.Split('\n');
- int i = 0;
- foreach (var item in strArr)
- {
- if (item.StartsWith("#") || item.StartsWith(":") || string.IsNullOrEmpty(item)|| item.StartsWith("\r"))
- {
- continue;
- }
- string[] strArr2 = item.Split(';');
- m_TMP_SpriteAsset.spriteInfoList[i].x = float.Parse(strArr2[1]);
- m_TMP_SpriteAsset.spriteInfoList[i].y = float.Parse(strArr2[2]);
- i++;
- }
- }
- }
将脚本随便挂在一个物体上,我这里路径是写在Assets下然后填上对应的.tpsheet文件名,
将TMP_SpriteAsset文件拖到面板上然后运行
坐标修改完成.
基本上Font Asset中文 和Sprite Asset的制作就完成了,欢迎留言交流经验,不足的地方请大家指正