0

我目前正在使用 Unity 5 开发一款包含计时器的手机游戏。计时器应该每秒更新一次。

我有一个奇怪而愚蠢的问题,我找不到解决方案。我希望有人以前遇到过这样的事情。在我拥有 Unity 5 之前,我最初将计时器设为 GUI 对象。当它是 GUIText 时,它可以正常工作。基本上,正在发生的事情是在检查器中,文本组件正确更改。然而,在实时,在游戏视图中,文本不会改变。我也已经将我的代码从 GUIText 调整为 Text。所以这也不是问题。我的代码片段如下:

private Text guiText;
void Start () {
    guiText = gameObject.GetComponent<Text>();
    guiText.text = timer.ToString();
}
void Update () {
    timer += Time.deltaTime;
    timerString = timerFormat(timer);
    guiText.text = timerString;
}
string timerFormat(float currentTime)
{
    TimeSpan ts = TimeSpan.FromSeconds(Mathf.Round(currentTime));
    int hours = ts.Hours;
    int minutes = ts.Minutes;
    int seconds = ts.Seconds;
    timerString = string.Format("{0:00}:{1:00}:{2:00}", hours, minutes, seconds);
    return timerString;
}
}

这是我在屏幕上看到的屏幕截图: 在此处输入图像描述

4

1 回答 1

1

根据您的屏幕截图,您的 TextComponent 太小,因此文本被截断。

在这里,您有一些选择:

  1. 尝试在 Rect Transform 上使用将“宽度”调整为更大的值。
  2. 尝试在文本组件上使用“最适合”选项。
  3. 尝试在文本组件上将“水平溢出”设置为“溢出”。

我建议您尝试第一个选项并检查一些边界情况值(00:00:00、59:59:59、100:59:59、-100:59:59 等)会发生什么。除了最终(或正常)将在 TextComponent 上使用的值,您必须确保即使使用错误的值,您的 TextComponent 也会按预期运行。)


参考:

http://docs.unity3d.com/es/current/Manual/script-Text.html

一些视频教程:

https://unity3d.com/es/learn/tutorials/modules/beginner/ui/ui-text https://unity3d.com/es/learn/tutorials/projects/roll-a-ball/displaying-text

于 2015-10-05T19:42:46.753 回答