【Unity】TextMeshPro 3.0.9无法显示emoji表情问题

 需要下载TextMeshPro 3.2.x-pre.xxx版本,重新生成Sprite Asset文件解决

注意:若Package Manager没有搜到pre版本,那么可以去github下载到本地,再解压后,将文件夹移动到工程Packages文件夹下,然后打开Package Manager,点击+号, add package from disk 选择项目Packages/com.unity.textmeshpro-x.x.x-pre.xx文件夹下的package.json文件,等待加载

然后点击TMP Essential Resources,等待下载

Releases · needle-mirror/com.unity.textmeshpro · GitHub

创建表情包步骤基本不变,使用TexturePacker生成json array文件和png图集,然后去window->TextMeshPro -> Sprite Importer,use filenames as Unicodes 勾选,然后点击create sprite asset 生成Sprite Asset。【这步骤网上很多教程】

这个文件赋值给TextMeshPro(UGUI)组件的Sprite Asset公共字段,拖拽赋值。

也可以代码里动态赋值,只要文本出现有<sprite="SpriteAssetName" index=xxx>,就会自动回调一个函数,函数会传递Sprite Asset资源名,即SpriteAssetName,然后你可以使用这个名字从Resources文件夹或别的方式加载出这个SpriteAsset资源return。

 TMPro.TextMeshPro.OnSpriteAssetRequest += (num, spriteAssetName) =>
 {
     return Resources.Load<TMPro.TMP_SpriteAsset>(spriteAssetName);
 };

这里我直接return 从Resources文件夹加载出的资源,项目情况可以优化下将资源加载出后,再缓存起来不需要每次都去加载,因为这个函数真的是每次文本刷新都会触发的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值