【unity】TextMeshPro文本抖动效果
文本抖动效果
前言
在部分电子游戏中,当角色处于狂喜、紧张或恐惧等激动情绪时,角色对话框中的文字会触发抖动等效果,这为游戏增色不少,如下。
当我在网上查找相关资料时,没找到相关的实现,也可能是我搜索的关键词不对。
总之今天来实现一下这个效果。
实现思路
目标效果是:在同一帧的动效中,文本中的每个字符都各自向随机方向偏移了一小段距离。
传统的Text
组件我不清楚能不能成,但是TextMeshPro
一定能成,因为TextMeshPro
中的文本渲染是基于Mesh
的,只要能拿到每个字符对应的Mesh
顶点数据,就能单独给每个字符设置位置、颜色等数据。如果不明白的话去补一下Mesh
相关知识就好。
实现思路如下:
- 获取
TextMeshPro
中的顶点数组和每个字符。 - 遍历每个字符,对每一个字符,都随机生成偏移量,并将该偏移量应用在这个字符对应的所有顶点数据上。
- 更新组件渲染。
可能的困难
我们需要在同一帧内随机生成各个字符的偏移,这些偏移要保证各不相同。
在同一帧中,除非改变传入的min
或max
的值,否则无论调用多少次,引擎中的Random.Range(min, max)
的返回值都会是同一个数。
解决方案:基于内存地址,使用C#
的System.Random
,详情见->Unity并发取随机导致相同解决方法。
代码实现
最终效果
上面一排是目标效果;下面一排是文本整体偏移抖动。
参考资料
Unity并发取随机导致相同解决方法_fairen的博客-CSDN博客
__EOF__

本文作者:OtusScops
本文链接:https://www.cnblogs.com/OtusScops/p/17480963.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/OtusScops/p/17480963.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2021-06-14 【unity2D】设计模式-单例模式Singleton