动态显示句子时避免单词的视觉移动

Avoid visual movement of word when showing sentence dynamicaly

在 cocos 创建者上,我想以类似 Typed.js 的方式显示对话框。基本上显示字母就像有人在打字一样。

问题是我有一个确定宽度的Label,当有一个字接近Label大小的末尾时,它开始写在一行上,然后写完在另一行上。

我希望那个词在下一行的开头开始写,但我不知道该怎么做。

我试过的东西:

  1. RichText for Cocos creator, 使句子中需要写透明的部分,但是cocos creator 上的RichText 不能透明

  2. 尝试在渲染之前写这个词,然后检查Label的大小,看尺寸是否发生变化,所以我必须在新行上设置最后一个词,但是 Label 大小在渲染之前不会更新,我想要在渲染之前它。

知道如何实现吗?

找到了解决办法,就是先把所有的单词放到场景中,不显示出来,然后计算每个单词的大小,然后计算在个单词处断句,然后在该词之前添加一个换行符。我不知道这是否是最优化的方法,但它有效而且我不知道还有什么其他方法可以做到这一点。