文字统一消失

时间:2018-10-25 18:05:07

标签: c# unity3d

我有以下代码:

void Update ()
{
    TextDisplay();
    health -= 0.1;
}
void TextDisplay()
{
    healthText.text = "Health: " + health;
    comboText.text = "Combo: " + combo;
    scoreText.text = "Score: " + score;
}

此代码在屏幕上显示文本,并显示变量healthcomboscore的值。 health是双精度型,comboscore都是整数。 comboscore完美显示时,health的文本减小1时消失(因此,从100开始,到99.0时消失)。

为什么会这样?我怀疑它与health是双精度型有关(因为其他两个整数值可以正常工作)。当我将其更改为整数(从-0.1到-1)时,它开始工作。

我从Unity编辑器链接到的文本尚未在其颜色之外进行格式化,并将其锚定在左上角。

另外,我在属于不同游戏对象的不同脚本中访问了这些值。当该脚本中的生命值增加10(由于游戏对象被“击中”,不能再被“击中”并在之后销毁)时,健康文本会立即显示,然后再次消失。

1 个答案:

答案 0 :(得分:2)

问题是小数位数增加到String溢出UI.Text框的大小,然后将其裁剪到视图之外。

要解决此问题,您可以先格式化小数点,然后再将其添加到字符串中:

healthText.text = "Health: " + Math.Round(health,1); // one decimal place

(可选)您可能希望将UI.Text垂直和水平溢出类型设置为overflow和/或增大rectTransform的大小。