首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有一种方法来改变TextMeshPro的文本内容使用动画?

是否有一种方法来改变TextMeshPro的文本内容使用动画?
EN

Stack Overflow用户
提问于 2022-05-30 11:49:18
回答 1查看 79关注 0票数 1

我正在使用动画器来创建一个开关按钮

我试着改变图像,改变颜色,改变文字。

因此,我改变了图像和颜色,但我不知道如何更改文本内容。我看不到动画师添加的字段。

用动画师更改文本内容是不可能的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-30 12:13:21

对您的问题的简短回答是“否”,您不能在“统一”动画中应用名为Type Writer的效果。但是下面的代码解决了您的问题。下面的代码是一个基本的类型写作效果,它通过调用Coroutine来工作。将您的TextMeshProUGI设置为第一个参数,效果将完成。

代码语言:javascript
运行
复制
public TextMeshProUGUI tmp;
public void Start()
{
    StartCoroutine(TypeWriter("Your text here..", .2f));
}
代码语言:javascript
运行
复制
public IEnumerator TypeWriter(string text, float waitTime)
{
    for (var i = 0; i < text.Length; i++)
    {
        tmp.text = text.Substring(0, i);

        yield return new WaitForSecondsRealtime(waitTime);
    }
}

如何在动画中添加类型写作效果?

在这里,我建议一个很好的方法来应用于动画师。在动画器中单击所需的状态,然后单击AddBehavior以创建类型写入脚本。

最后,您所要做的就是将脚本引用到OnStateEnter事件。我已经从我的MenuManager单例调用了脚本,你也可以把它放在你的动画角色中。

代码语言:javascript
运行
复制
public class TypeWriter : StateMachineBehaviour
{
    public string text;
    public float waitTime;
    public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        MenuManager.singleton.StartCoroutine(TypeWriter(text, waitTime)); // reference your mono behaviour script here
    }
}

如果您已经在动画角色中编写了脚本类型编写器,您可以在下面得到它。记住在下面用Character类型替换您的脚本名,IEnumerator也只能在mono behavior中使用。

代码语言:javascript
运行
复制
public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
    animator.GetComponent<Character>().StartCoroutine(TypeWriter(text, waitTime)); // reference your mono behaviour script here
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72433852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档