Unity中使用TextMeshPro打出Emoji表情


最近遇到一个需求,在聊天框中支持用户的Emoji输入,查了半天资料没有一个能说清楚的,于是自己研究琢磨了下。
最终效果
最终效果可以在APP输入框中使用系统的输入法输入emoji表情并显示,如下
UI-哈哈-final


1 制作Emoji图集

1.1 准备好emoji素材

找到emoji图片,注意需要是 unicode.png 格式命名的。github上一些开源项目有这些图,或者到这个链接(提取码: 0uN0 )下载

Emoji图片

准备使用。

1.2 下载 TexturePackerGUI 软件

这个链接下载并安装,打开软件
TexturePackerGUI

语言的切换在这里
语言切换

1.3 制作图集并输出

制作图集

将Emoji图片文件夹拖入到左侧栏目里,同时右侧的数据格式切记选择 JSON(Array), 而不是 Unity的texture和json格式.
点击发布精灵表,输出保存即可。
输出图集

sprite-output

2 制作TextMeshPro素材资源

2.1 导入 TextMeshPro 库

项目中在 PackageManager中导入 TextMeshPro , 注意版本为Pre-Release的3.2.x的而不是当前最新的Release 3.0.x
TMP

在 Project Settings 可以打开Pre版本的展示
PackageManager-Pre

不过可能是网络因素或者中国版因素,很大可能开启了pre版本拉取依旧package manager里不展示,如果这样的话可以到 TextMeshPro的github源码库下载并导入该库
TMP-github

记得将Essential素材导入
TMP-essential

2.2 制作 TextMeshPro 的 Sprite Assets

打开 Sprite Importer 开始制作TextMeshPro的SpriteAssets
TMP-Importer

将1.3制作输出的文件拖入,勾选 use filenames as Unicode
sprite-output

然后Create Sprite Asset,没问题的话会输出结果
sprite-output-create

再点击 Save Sprite Asset 保存即可
sprite-output-save

建议将这些素材放到TMP Essential目录里,刚好他里面也有个emoji的demo
sprite-output-folder

3 打出完美的emoji表情

3.1 将上一步的 Sprite Assets 引用到 TextMeshPro 的设置中

选中 TMP Settings 将上一步导出的 Sprite Assets 拖入设置为 Default Sprite Assets
TMP Settings

此时就可以测试TextMeshPro打字打emoji了,win10的默认微软输入法和市面上的输入法一般都支持直接打emoji,例如键盘输入拼音 haha 候选里面就会有emoji
输入法哈哈

UI结果如下所示,不尽人意,图片内容有裁剪和其他内容,并且图片位置下移或不对劲
UI-哈哈

3.2 调整 TexturePackerGUI 输出的细节

按照如下设置配置 TexturePackerGUI
packer配置1
packer配置2

重要的几个点为布局里的

  • 大小限制-POT(2的幂)
  • 强制正方形-勾选
  • 缩放模式-平滑
  • 算法-网格/条带
  • 允许旋转-不勾选

做到上述配置,再次导出并制作Sprite Assets, 并在 TMP Settings 里拖入新的Sprite Assets即可观察效果。 建议新制作导出制作Sprite Assets是重新命名保存个新的文件并在TMP重新拖动,防止Unity不更新素材文件等。
到这里,图片可以正常显示了。
UI-哈哈-new

不过位置依旧不对,需要将图集的锚点重新设置,按照实际图片的需求设置并导出测试。我使用的emoji图片需要以下设置。
在 TexturePackerGUI 左边的列表随便选中一张图双击进入详情,将锚点设置为下面这样,默认应该是预定义里的中央0.5;0.5 ,自己调整并且点击那个回车按键,这样新导入的图片就会使用这个配置。我这里设置为0.8并且按了回车。然后将左边的图片文件夹选中点 delete 按键删了,重新导入,这时所有图片都是这个锚点配置了,重新点击发布精灵表 即可
Sprite锚点

最终的效果如图,这样就基本OK了
UI-哈哈-final

这个链接(提取码: 3pv3 )可以下载最终导出的json和png直接制作sprite assets

至此,就结束了TextMeshPro制作带unicode的emoji表情功能的sprite assets


如果您觉得对您有帮助,可以点这里请我喝杯咖啡,同时相关资源也会同步免费发布

  • 7
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值