如何手动集成 Text Animator
嘘。检查你的对话系统是否已经集成在这里: 集成的插件与对话系统.
所有对话系统都不同,但有一点例外: 设置文本.
理论上 你可以简单地通过替换“tmpro.text=dialogue;”为“typewriter.ShowText(dialogue);”来集成你的插件,但这里有一个更详尽的包含不同情况的指南。
请注意 强烈建议 禁用你的插件打字机(如果你打算使用它)并且 使用 TextAnimator 的 那个(这样你就可以使用它的所有功能)。
具有自身格式化功能的对话系统可能会使此过程更加复杂。有关更多信息,请阅读下图。

如果你需要更多说明或帮助,请随时联系我们。
这里也有一份书面指南。
如果你的对话系统 / 插件…
… ⚠️ 动态显示文本(有打字机效果)
✔️ 用 TextAnimator 的打字机替换你插件的打字机。
❌ 如果你无法替换 DialogueSystem 的打字机,尝试将值“使用简单集成”设为 false(TextAnimator 组件)并检查动画是否正常工作(基于众多不同的对话系统,无法保证成功)。
然而不建议使用此选项,因为性能可能会大幅波动。请使用内置的打字机。
常见问题
… 有自定义动作
“自定义动作”是指“在显示文本时执行的动作”,比如“等待玩家输入”等。
✔️ 如果你正在使用一个
TextAnimatorPlayer: 在此处阅读如何实现自定义动作: 编写自定义动作(C#)❌ 如果你不能使用一个
TextAnimatorPlayer: 你不需要实现任何自定义动作(因为它们已经存在于对话系统的打字机中)。不过如你所知,使用外部打字机并不推荐,可能会影响你项目的性能。
… 有它自己的标签/格式化
✔️ 用于姓名/管理的标签
这些标签应由 DialogueSystem 用来构建文本字符串。它们不应引起任何问题,因此你不必替换或修改任何内容(包括起始和结束字符)。假设的“姓名/管理”标签示例:
{actor1}→ 在文本中写入正在说话的第一个角色的名字。|getValue("eatenApple")|→ 在文本中写入一个变量文本示例
"{actor1}, why did you eat |getValue("eatenApple")| apples?! Omg" → “Karen, why did you eat 1234567 apples?! Omg” → 如你所见,最终文本中不显示任何标签。此情况在不需要任何 Text Animator 实现的情况下即可工作。
⚠️ 文本样式的标签
如果你的对话系统有样式文本标签(比如 <bold> 用于加粗),请确保你的对话系统的标签与 Text Animator 和 Text Mesh Pro 的标签相匹配(在上例中,将 <bold> 替换为 <b>).
⚠️ 用于自定义功能的标签
如果你的对话系统有执行任何操作的标签(例如“播放音频”),请查看这里: 编写自定义动作(C#)
另外,请务必检查已实现的功能: 在打字时等待动作
最后更新于