1.X

Text Animator for Unity 的第一个版本,从最初发布到三年后的历程。


1.3.X

1.3.3 - 一般改进与修复

主要更改

  • 错误修复:在某些罕见情况下未触发消失事件

  • 错误修复:TextAnimatorPlayer 在 TMPro 中因缺少 unicode 变量而抛出错误

API 更改

  • 新增:通过脚本分配效果的 ScriptableObject 数据的方法

  • 新增:手动更新 Text Animator 组件的选项


1.3.2 - 新外观效果:随机方向

主要更改

  • 新增:新的出现/消失效果:随机方向

  • 新增:Yarn Spinner 2.X 的集成指南

其他更改

  • 改进:在其最新更新后对 TMPro 输入字段的支持

  • 错误修复:当文本在 OnEnable 之前被设置时在某些情况下出现的索引越界问题

  • 错误修复:效果的动态缩放未应用于尺寸与 TMPro 不同的字符

  • 错误修复:如果更改了 TMPro.maxVisibleCharacters,网格未更新

小改动

  • 新增:网站上的“使用 Text Animator 制作的游戏”展示页面

  • 新增:关于窗口中用于提交 Text Animator 展示的部分

API 更改

  • 移除:TextAnimator.UpdateEffectIntensity 方法,因现在在应用字母前会自动更新


1.3.1 - 一般改进与修复

主要更改

  • 新增:对 Unity 可视化脚本包(原“Bolt”)的集成支持

  • 新增:检查器选项,用于在设置新文本时重置效果

  • 新增:导入/更新包时的欢迎页面

  • 错误修复:在反向方向上未触发 Typewriter 的 OnTextDisappeared

  • 错误修复:Typewriter 的 OnTextDisappeared 在未完全等待最后一个字母动画结束时触发

  • 错误修复:在等待短文本消失时,Typewriter 可能引发 IndexOutOfRange

  • 错误修复:某些字体/字符在文本在 LateUpdate 时启用会导致 IndexOutOfRange

  • 错误修复:淡入淡出效果正在淡入为黑色而不是保留字母的 RGB

  • 错误修复:彩虹效果在偏移色相时现在保留字母的 alpha

  • 错误修复:对某些字体和字符,在 OnEnable 激活文本效果时错误

  • 错误修复:Typewriter 消失速度不能低于 DeltaTime 的问题

API 更改

  • 新增:Typewriter 的“isWaitingForPlayerInput” 布尔,用于当打字机处于动作标签中时

  • 公开:Text Animator 效果强度乘数

  • 公开:Text Animator 动态缩放布尔值

  • 公开:Text Animator 参考字体大小


1.3.0 - 消失效果与程序集定义文件

主要更改

  • 新增:消失效果,允许你从左到右或从右到左动态隐藏字母,包含不同的个性化选项等。

  • 新增:程序集定义文件(Assembly Definition Files)

  • 新增:出场和消失效果的修饰符

  • 改进:回退/默认效果现在也支持修饰符

其他更改

  • 新增:重置效果时间的方法

  • 错误修复:TextAnimator 效果中单字符的 TMPro 标签关闭现在能正确处理

  • 错误修复:某些无效字符或字体抛出的 IndexOutOfRange 异常

  • 错误修复:若前一文本包含 TMPro 标签,追加文本中效果索引位移的问题

  • 错误修复:与回退具有相同标签的效果在文本中第一次出现时未正确关闭

  • 错误修复:事件不区分大小写问题

  • 错误修复:如果文本游戏对象处于非激活状态,网格未更新

  • 错误修复:[WebGL] 抛出无法表示数字错误

  • 改进:移动文件与文件夹以便更好组织

  • 改进:文档页面

  • 改进:插件的脚本 API 现在也引用 Unity 的脚本 API。

小改动

  • 新增:“调试模式”,以便更好地支持请求(仅在你添加脚本定义符号时可用,因此不会包含在玩家构建中)

  • 改进:示例场景的 .meta 文件,修复某些变量未被序列化的问题

  • 改进:脚本注释

API 更改:

  • 更改:TextAnimator.IncreaseVisibleCharacter() 改为 TextAnimator.maxVisibleCharacter++

  • 移除:TextAnimator.SyncText,请改用 SetText

  • 移除:TextAnimator.deltaTime,请改用 m_time.deltaTime

  • 改进:内置效果值现在对它们共享的 ScriptableObjects 为公开


1.2.X

1.2.12 - 追加文本

主要更改

  • 新增:用于追加文本的方法(适用于 Typewriter 与 TextAnimator 本身)

  • 新增:自定义字符解析符号

  • 新增:TextMeshPro 对 firstVisibleCharacters、maxVisibleCharacters、maxVisibleWords 和 maxVisibleLines 的支持

其他更改

  • 错误修复:解决在 TextAnimator 的 Awake 脚本顺序之前设置空文本导致的错误

  • [API] 过时:TextAnimator.SyncText 现已标记为过时,并将在下个版本移除。请改用 “SetText”。

  • [文档] 从脚本 API 中移除已过时的方法。


1.2.11 - Ink 集成与 2 个新效果

主要更改

  • 新增:“Pendulum”(钟摆)和 “Dangle”(悬垂)行为效果

  • 新增:Ink 集成

  • 错误修复:动作现在正确按区分大小写解析

  • 错误修复:在检查器中创建的自定义效果模块现在能正确禁用并返回正确值

其他更改

  • 新增:为单个 TextAnimator 组件禁用效果的方法

  • 新增:Typewriter 选项以跳过等待最后一个字母

  • 新增:新创建的自定义行为(在检查器中创建)其所有模块的曲线 postWrapMode 默认设置为“loop”

  • 错误修复:解决阻止出场效果在启动时具有正确值的问题

  • 错误修复:可以将多个相似效果(相同标签但修饰符不同)应用于文本


1.2.10 - 全局内置效果值

主要更改

  • 新增:通过 ScriptableObjects 的全局内置效果值。

  • 新增:TMPro 的 <noparse> 标签现在也禁用 TextAnimator 的格式化。

  • 新增:Typewriter 选项以保持所有文本的打字速度。

  • 新增:Typewriter 选项以跳过对换行符('\n')的等待。

其他更改

  • 错误修复:直接写在 TMPro 标签(例如 color)之前的 Typewriter 事件现在能正确触发。

  • 错误修复:解决阻止行为回退效果应用到字母的问题。

  • 错误修复:“水平扩展”出现效果现在正确显示“效果起始侧”选项。

  • 改进:示例场景文本。

小改动

  • 错误修复:[检查器] 打字机的 delay 字段具有正确的缩进级别。

  • 通用 API:在默认打字机中公开“delay”变量。


1.2.9 - 脚本 API 与通过 C# 的自定义效果

如果你通过 C# 编写了自定义效果,请阅读更新指南。

主要更改

  • 新增:文档中的脚本 API 部分,自动从代码生成。

  • 新增:“行为效果回退”,允许你设置如果文本/字母没有分配标签时要应用哪些行为效果。

  • 改进:所有公共 API 的注释,扩展了示例和手册引用。

  • API:自定义效果的 C# 现在可通过 C# 自动识别。

其他更改

  • 错误修复:在 AOT 平台(或 IL2CPP)构建时效果类不会被剥离。

  • 通用:出场效果仅在启动时计算一次。

  • 通用:即使用户在同一文本中写入多个相同标签,TextAnimator 现在也只实例化一次相似的效果类。

API 更改:

重大更新

  • 新增:在自定义效果中引用字符数据的 “TMPro.TMP_CharacterInfo” 变量。

  • 新增:为所有效果添加属性 “EffectInfo”。

  • 移动:行为效果的 time 和 deltaTime 现在存储在 “TimeData” 结构中。

  • 移除:“CustomEffects” 数据持有类。现在你应使用内置效果值,或引用 TextAnimator 之外的变量(例如在你的游戏管理器中)。

其他

  • 重命名:AppearanceEffects 的 “showDuration” 改为 “effectDuration”。

  • 重命名:EffectBase 的 “effectIntensity” 改为 “uniformIntensity”。

  • 移动:将 “IsTagLongEnough” 从 TextAnimator.cs 移到 TextUtilities.cs。

  • 访问:EffectBase 的区域管理代码现在在 RegionManager 类中。

  • 访问:TAnimGlobalDataScriptable 中的变量现在为 internal。

  • 访问:EffectBase 的核心方法现在为 internal。

小改动

  • 改进:检查器中的 TextAnimator 标签。

  • 错误修复:标签为空时不再被处理。

  • 通用:一些效果性能与代码组织的改进,特别是预设效果。

  • 错误修复:即使用户在初始化 TextAnimator 之前调用,`text utilities` 类现在也会被初始化。

  • 错误修复:当用户想从 OnEnable 启动打字机但“usetypewriter”选项被禁用时抛出的 logwarning。

  • 将以下类移到各自文件中:“TAnimTags”、“TypewriterAction”、“TAnimBuilder”。


1.2.8 - 一般改进与修复

  • 新增:检查器中每个面板的帮助链接,指向相关文档页面。

  • 新增:带有文档与支持链接的菜单项。

  • 改进:检查器中自定义效果的文档页面。

  • 错误修复:启用了自定义效果的 AnimationCurve 中的 decay “loop” 与 “pong”。

  • 错误修复:阻止编译器构建应用的预处理器问题。

  • 错误修复:浮点解析在某些文化中不起作用的问题,第二部分(我们又见面了,亲爱的敌人)。


1.2.7 - 文档、检查器与打字机改进

如果你编写了自定义动作,请阅读更新指南。

主要更改

  • 新增:打字机现在可以每帧显示更多字符。

  • 改进:文档、路线图和支持表单已改进并托管在新的专用网站上。

  • 改进:以下组件的检查器:"TextAnimator"、"TextAnimatorPlayer"(包括基类)、"Global Data" ScriptableObject。

其他更改

  • 新增:用于启动或停止打字机的方法。

  • 新增:禁用所有 TextAnimator 的外观/行为效果的选项。

  • 改进:TextAnimator.cs 与 TextAnimatorPlayer.cs 的注释、工具提示和脚本结构。

  • 移除 Documentation.zip 并改进“文档与快速开始”pdf。

API 更改

动作:

  • 改进:自定义动作 API [如果你创建了自定义动作,请阅读更新指南]。

  • 更改:TextAnimator.cs 中的 “hasActions” 布尔现为 internal。

打字机:

  • 在打字机基类中移除已过时的方法/事件。

小改动:

  • 新增:你现在可以决定打字机自动从哪些方法启动(“显示文本”“在启用时”等)

  • 改进:打字机的检查器现在也可以让你根据期望的每秒字符数选择延迟。

  • 错误修复:如果对象不激活,协程不再启动。

  • 错误修复:自定义效果示例现在被注释掉。

  • 通用:打字机最小延迟已降至 0.0001。

  • 通用:预设效果中“curve” 重命名为“随时间的强度/衰减”。


1.2.6 - 全局预设效果

主要更改:

  • 新增:全局预设效果。你现在可以创建效果并在多个 TextAnimator 组件之间共享,而无需创建预制件。

  • 错误修复:属性现在正确应用于所有效果。

  • 性能:默认效果数据库(包括全局效果)仅构建一次,如果你有多个 TextAnimator,可提升性能。现在,TextAnimator 只会构建其本地数据库(如果存在本地效果)。

其他更改:

  • 错误修复:如果 TMPro(GUI)禁用了其画布,导致 TextAnimator 无法更新 TMPro 的网格并应用效果,现已修复抛出的错误。

  • 错误修复:在跳过时触发事件按预期工作。

  • 错误修复:自定义外观(c#)值现在正确序列化。

  • 错误修复:当用户跳过打字机但它未触发任何事件时抛出的错误。

  • 错误修复:淡出行为按预期工作。

小改动:

  • 新增:自定义 TextAnimator 检查器现在有两个辅助按钮,一个可定位“Global Data” ScriptableObject,另一个可重置行为效果时间(仅编辑器)。

  • 新增:Unity 菜单项,可定位“Global Data” ScriptableObject。

  • 通用:改进了 TextAnimator 组件的自定义编辑器。

  • API:效果默认标签现在存储在静态的 TAnimTags 类中。


1.2.5 - 一般改进与修复

主要更改:

  • 新增:在跳过打字机时触发剩余事件的选项。

  • 改进:事件与功能现在基于它们的顺序触发,即使它们位于同一字母上。

  • 错误修复:使用不同字体和材质时的 IndexOutOfRange 异常。

  • 错误修复:自定义效果现在正确添加到数据库列表。

  • 通用:事件现在默认区分大小写。

其他更改:

  • 改进:已将 Unity 2019.2 或更高版本的 TryGetComponent 方法的使用扩展到 TAnimPlayerBase.cs 与 TextAnimator.cs 中的其他组件引用。

  • 通用:根据请求,改变了 Core 命名空间内类的访问修饰符。(此步骤为下一次更新做准备)。

  • 通用:TAnimPlayerBase.cs 中的 OnEnable 与 OnDisable 方法现在为 virtual。

  • 通用:改进注释。


1.2.4 - 动态效果强度

主要更改

  • 新增:基于不同字体大小的动态效果强度。

  • 新增:为打字机和效果添加时间缩放选项,可在“缩放(Scaled)”或“未缩放(Unscaled)”之间选择。

  • 新增:打字机基类中的 OnTypewriterStart 事件

其他更改

  • 改进:文档页面“管理效果”,将某些部分改为可展开。

  • 新增:CharsDisplayTime 属性,在检查器中告诉用户每秒和每分钟将显示多少字母。

  • 新增:TextAnimator.cs 中的 ForceMeshUpdate() 方法,允许用户强制刷新 TMPro 网格并记录其更改,在帧末执行。

  • 错误修复:通过 TempFix 设置文本现在在文本为空时正确清除网格

  • 错误修复:修复某些国家错误的属性解析

  • 错误修复:如果文本非空并在“Awake”之后在场景中被激活,则文本不再闪烁(该问题仅在第一次激活时出现)

  • 错误修复:功能标签(如 “waitfor”)现在在文本开头编写时也有效。

  • 错误修复:通过脚本更改 TMPro 的颜色属性现在触发网格更改。

  • 错误修复:临时的 TMPro 修复现在在文本为空时清除网格

  • 通用:将效果接口替换为基类。

API 更改

  • 过时:onTypeWriterEnded 事件现已过时并将在后续版本移除,请使用 onTextShowed 事件代替

  • 过时:OnTypeWriterStart 方法现已过时并将在后续版本移除,请改用其相关事件

小改动

  • 通用:检查器的最小正值现在为 0.01

  • 通用:检查器现在显示“简单集成(EasyIntegration)”标签,替代“TriggerAnimPlayerOnChange”(如果你更新保存的值不会丢失,仅为视觉更改)

  • 通用:改进检查器中“简单集成”的工具提示与警告。

  • 性能:在 Unity 2019.2 及更高版本中使用 TryGetComponent 方法替代 GetComponent。


1.2.3 - 打字机音效

主要功能

  • 新增 打字机音效 示例

  • 第三方插件“Naninovel”现已部分集成。

主要更改

  • 改进:摇动效果(及随机方向生成)已改进,以防止相似方向连续出现

  • 错误修复:使用简单集成(来自 TMPro)时,即使随后设置相同文本,打字机现在也会被触发

其他更改

  • 错误修复:如果使用 EasyIntegration,文本在第一次帧中会被正确隐藏

  • 错误修复:在某些实现中完整文本不会再在半帧中显示,现在可以正确隐藏

  • 错误修复:TextAnimatorPlayer 现在在启动协程前检查文本在整个场景中是否处于激活(而非仅局部)

  • 错误修复:若被触发,TextAnimatorPlayer 现在可以显示无任何标签的相似文本


1.2.2 - 稳定性

主要更改

  • 新增:仅在当前字符为序列中的最后一个(例如:‘Hello….’)时等待标点时间的选项(基础 TextAnimatorPlayer)。

  • 新增:表示最新显示字符的变量(TextAnimator.cs)

  • 新增:返回下一个要显示字符的方法(TextAnimator.cs)

  • 你现在可以在同一文本中同时使用 TMPro 的 “u”、“s” 和 “font” 标签(尽管不建议对前两个应用效果)

  • 改进:Text Animator 应用效果到字母的方式,带来一些错误修复及更高稳定性

其他更改

  • 错误修复:打字机现在可以在等待标点时跳过。

  • 错误修复:在某些特定文本末尾的字母现在正确显示(不过我得承认这个 bug 产生了一些有趣的结果)

  • 错误修复:创建出场效果时变量 “charsTimeOffset” 现在按预期工作

  • 错误修复:“<3” 等未完成/无法识别的标签现在正确显示在文本中

  • 性能:改进核心性能(内存与处理)

  • 性能:改进从 TextMeshPro 更改文本时的性能,尤其在未关联打字机的情况下

  • 错误修复:“MinValue” 属性现在正确显示工具提示

  • 为 TextAnimatorPlayer 类添加了工具提示。


1.2.1 - 效果创建器更新

主要特性

  • 你现在可以在检查器中创建效果,控制移动、旋转、缩放、颜色和发光。(并配有自定义检查器)

  • 你可以通过标签使用多个出场效果,使用“{”与“}”作为起始和结束字符。

其他特性

  • TextMeshPro 的 “style” 标签现在兼容

  • 你可以通过调用“SkipTypewriter()”方法跳过剩余的打字机。

  • 新增自定义功能 “speed”,可通过标签改变打字机速度。

  • 在 TAnimBase.cs 脚本中新增 Unity 事件 “onCharacterVisible(char)”,在每个字符变为可见时调用。

  • 在 TAnimBase.cs 脚本中新增 Unity 事件 “onTextShowed”,在文本完全显示时调用。

  • 新增示例场景,包括预设和一些效果用例。

  • 现在支持 PlayMaker。

改进

  • 性能:插件现在构建效果数据库(包括用户自定义效果),优化运行时标签查找。

API 更改 - 自定义效果

  • 自定义效果的实现方式已更改;用户需在静态只读数组中添加其“ID”与“类类型”。(仍在同一 CustomEffects.cs 文件)

API 更改 - 移除已弃用方法

  • 移除了 TextAnimatorPlayer.cs 中名为 “ShowTextInstantly” 与 “StartShowingText” 的已弃用方法,如在 1.2.0 版本中预测。

核心小调整 - 细节

  • 性能:通过不同方式组织字符 ID 与数组,提升约 10%。

  • 性能:随机值仅生成一次

  • 性能:改进字符中心计算

  • 性能:改进格式化与内存管理

  • 性能:从 TextUtilities 扩展中移除不必要的“数组返回”

  • 错误修复:大量添加字母时出现的错误索引问题

  • 错误修复:不属于 Text Animator 的标签不再严格写成小写

  • 错误修复:当更改 TMPro 文本(简单集成)时,TextAnimatorPlayer.cs 的 onTypeWriterEnded 现在正确触发

  • 错误修复:修复在 TextAnimator 自定义检查器中为“HorizontalExpand”出场效果显示的错误变量

  • 通用:创建新脚本时,默认出场效果现在为“size”

  • 通用:事件现在在字母之前触发,而不是之后触发

  • 通用:移除了通过 Debug.Log 建议不要同时使用 “vertexp” 与 “horiexp” 出场效果的提示。现在在检查器中给出建议。

  • 通用:整理示例场景


1.2.0 - 简单集成(Easy Integration)

特性

  • 不再严格要求通过脚本设置文本。

  • TextAnimatorPlayer 的文本现在可以在 GameObject 被禁用时设置。

API 更改 - TAnimPlayerBase.cs

  • 方法 “StartShowingText” 与 “ShowTextInstantly” 现已过时;改为使用 “ShowText”。

  • 方法 “OnTextEnded” 现为事件 “onTypeWriterEnded”。

  • 打字机现在可以通过检查器启用。

其他

  • 格式化标签时的性能改进。

  • 检查用户是否写了兼容标签时的错误修复。

  • 移除 “Integrations” 文件夹(感谢简单集成)。


1.1.X

1.1.1 - 错误修复

特性

  • 文档:添加了公开路线图

重要更改

  • 修复了同步比先前更短文本时发生的错误。

  • 修饰符不再有值限制。

其他调整

  • 在 TextAnimator.cs 脚本中启用 #LOGS_DEBUG 定义时的错误修复

  • 改进了基础效果类的调试。

  • 文档:行为效果的属性现在在“效果列表”页面可见。


1.1.0 - 初始发布 - 2019.12.19

首次发布。

最后更新于