本文正在参与「金石计划 . 瓜分6万现金大奖」

关于作者

众所周知,人生是一个漫长的流程,不断克服困难,不断反思行进的进程。在这个进程中会发生许多关于人生的质疑和考虑,所以我决议将自己的考虑,经历和故事悉数共享出来,以此寻找共鸣!!!

专心于Android/Unity和各种游戏开发技巧,以及各种资源共享(网站、工具、素材、源码、游戏等)

欢迎重视大众号【空名先生】获取更多资源和交流!

条件

这是小空坚持写的Unity新手向系列,欢迎品尝。

小空为了便利更多的人(新手)看明白,运用的汉字,实在项目尽量运用英文规矩昂。

新手(√√√)

大佬(√)

实践进程

创立方法一

第一步准备一张图片,改TextureType为Sprite(2D and UI),Sprite Mode 为 Multiple , 在SpriteEditor切割好。

第二步在Project视图中选中该图片,必定更要选中,右键挑选 Create -> TeshMeshPro -> SpriteAsset , 会自动生成 ** SpriteAsset资源**

第三步你能够找到TextMeshPro的Settings(在Editor->Project Settings能够翻开,在Project中也能够找到这个文件),要么设置Default Sprite Asset为刚创立的SpriteAsset,要么将刚创立的SpriteAsset放到TextMeshPro的Settings里边设定的途径下(途径能够修改)。一般挑选方法二,至于原因下方有阐明。

Unity技术手册-TextMeshPro表情文字支持
假如图片有偏移,选中Asset资源后,展开Sprite Character Table选中一个有个Edit Glygp能够调整,和Font Asset Set中的Character Table很相似。

Unity技术手册-TextMeshPro表情文字支持
之所以该方法不支持Unicode编码方法显示Sprite是应为里边的Unicode没处理好,方法二能够运用Unicode的方法。

创立方法二

借助外部工具,比方TexturePackerGUI这个软件制造好图集以及每个表情对应的信息后,在unity中的Window->TextMeshPro->SpriteImportor,翻开制造面板,把图集和文本描绘信息拖到相应方位,点击“Create Sprite Asset”,然后保存到“合适方位”即可。这个合适的方位是能够装备的。在Poject中查找TMP Settings,在其检视面板中找到Default Sprite Asset,里边能够指定默许的“表情包”资源,能够指定表情包的寄存方位。

第一步去找一些emoji图片,github上能够查找许多github.com/cj1128/emoj…

第二步下载并翻开TexturePackerGUI软件(我用的是6.0多的版本),支持中文,记住切换

第三步将Emoji图片文件夹拖入到左边栏目里,一起右侧的数据格式牢记挑选 JSON(Array), 而不是 Unity的texture和json格式。注意:大小限制-POT(2的幂),强制正方形-勾选,缩放形式-平滑,算法-网格/条带,允许旋转-不勾选,修剪形式为没有。

点击发布精灵表,输出保存即可。会得到一个json以及一个png图片。

第四步将json和png导入Unity,Window-TextMeshPro-Sprite Importer翻开设置,Sprite Data Source挑选你的json文件,Sprite Texture Atlas挑选你的png图片。假如想用文件名作为unicode记住勾选,Create Sprite Asset,没问题的话会输出结果,再点击 Save Sprite Asset 保存即可。

第五步选中 TMP Settings 将上一步导出的 Sprite Assets 拖入设置为 Default Sprite Assets就能正常运用了。

Unity技术手册-TextMeshPro表情文字支持

运用

在组件的文本框内运用sprite标签即可。如:

<sprite=默许表情包内要运用的表情的索引> 在TextMeshPro的Setting顶用Default Sprite Asset设置默许表情包

<sprite=”表情包称号” index=要运用的表情的索引> 一般运用该指定表情包的方法,你能够创立多个SpriteAsset想用那个里边的资源用哪个

<sprite=”表情包称号” name=”要运用的表情的姓名”> 表情包的姓名选中SpriteAsset后能够在Inspector窗口中检查。

默许情况下,表情是不受组件内的Color特点影响的,能够运用tint特点使之受组件内指定的Color的影响。tint=0 不叠加 tint=1 叠加,运用如下:

<sprite=”表情包称号” name=”要运用的表情的姓名” tint=1>

当然,强壮的TMP是能够让你自己入指定一个染色剂的,运用方法如下:

<sprite=”表情包称号” name=”要运用的表情的姓名” color=#ff0000>

<sprite=”表情包称号” index=要运用的表情的索引 color=#00ff00>

Unity技术手册-TextMeshPro表情文字支持
<sprite=1>Defalut表情包内要运用的表情的索引

<sprite=”EmojiOne” index=1> 一般运用该指定表情包的方法,你能够创立多个SpriteAsset想用那个里边的资源用哪个

<sprite=”EmojiTwo” name=”1f60e”> 表情包的姓名选中SpriteAsset后能够在Inspector窗口中检查。

Defalut情况下,表情是不受组件内的Color特点影响的,能够运用tint特点使之受组件内指定的Color的影响。tint=0 不叠加 tint=1 叠加,运用如下:

<sprite=”EmojiTwo” name=”Face with tears of joy” tint=1>

当然,强壮的TMP是能够让你自己入指定一个染色剂的,运用方法如下:

<sprite=”EmojiOne” name=”1f605″ color=#ff0000>

<sprite=”EmojiOne” index=1 color=#00ff00>

Unity技术手册-TextMeshPro表情文字支持

其他

作者:小空和小芝中的小空

转载阐明-必须注明来历:芝麻粒儿 的个人主页 – 专栏 – ()

这位道友请留步☁️,我观你气度不凡,谈吐间隐约有王者霸气,日后定有一番大作为!!!周围有点赞保藏今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。

本文正在参与「金石计划 . 瓜分6万现金大奖」