【问题标题】:How can we write a different letters at runtime/ writing animation in unity? [closed]我们如何在运行时编写不同的字母/统一编写动画? [关闭]
【发布时间】:2015-10-07 06:06:56
【问题描述】:

我正在制作一个游戏结束面板,我想在面板上写一个“游戏结束”文本,但我想以一种当我们看到它时看起来像有人实时写它的方式来写这个。我必须为此做些什么。我是unity新手,请帮助我

谢谢

【问题讨论】:

  • 您是否正在寻找实时输入或书写的信息(例如用铅笔?)
  • 是的,你是对的。我希望实时输入或写入消息(如使用铅笔)。有没有办法让我统一做到这一点。

标签: c# user-interface animation text unity3d


【解决方案1】:

如果你想画出它看起来好像是一个人在字面上写出来的(即你看到每个字母的线条是单独的铅笔笔画),那么你就不走运了。 Unity 的动画工具无法完成这种事情。

但是,如果您只想一次显示一个字母,则可以执行以下操作:

public IEnumerator WriteText(string words) {
    Text textbox = gameObject.GetComponent<Text>();
    StringBuilder sb = new StringBuilder();
    foreach(char c in words) {
        sb.Append(c);
        textbox.text = sb.ToString();
        yield return new WaitForSeconds(0.25f);
    }
}

您可以将包含该脚本的脚本附加到您的Text 对象,并在需要结束游戏时调用WriteText("Game Over");。调整 WaitForSeconds 构造函数中的数字以加快或减慢速度。

(注意:我的代码中可能存在一些名称等小错误;我现在不在使用 Unity 的机器上。不过,它们应该很容易修复。)

【讨论】:

    猜你喜欢
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-19
    • 1970-01-01
    • 2010-11-02
    相关资源
    最近更新 更多