type
status
date
slug
summary
tags
category
icon
password
TextAnimationD.lua-打字机
背景介绍
在做类似重生模拟器的玩法时,需要实现手自动剧情播放,且支持逐字播放。
基本思路
基于 TextMeshPro 的 maxVisibleCharacters 属性,不修改文本内容本身,而是控制可见字符的数量。只计算实际可见字符,检测区分富文本标签。用定时器去驱动递归调用。在文本动画完成后触发回调方法。
代码
支持多文本同时播放
支持富文本标签(<color>等)
支持中文等多字节字符
自动内存管理
支持自定义播放速度
支持播放完成回调
支持跳过/停止
支持状态查询
注意事项
- 必须使用 TextMeshPro 组件。
- 启动同一文本的新动画前会自动停止旧动画。
- 窗口关闭时必须清理动画,不然定时器会继续运行。
- 如果<>是文本本身的内容,那么在start前需要escape_text进行转义。
- stop会保持当前显示状态(部分文本)不触发完成回调,要显示完整文本和触发回调用skip。
有问题欢迎讨论
- Author:lzzd
- URL:https://lazy-zed.com/article/u3d_20
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!






.jpeg?table=block&id=19a85e12-7d7c-8011-89fa-fa3e60ef54a8&t=19a85e12-7d7c-8011-89fa-fa3e60ef54a8)

.png?table=block&id=19885e12-7d7c-80e0-9466-ccfdb68a297f&t=19885e12-7d7c-80e0-9466-ccfdb68a297f)
.png?table=block&id=19885e12-7d7c-8090-b2f9-d59fd470ae2a&t=19885e12-7d7c-8090-b2f9-d59fd470ae2a)