我有以下代码:
void Update ()
{
TextDisplay();
health -= 0.1;
}
void TextDisplay()
{
healthText.text = "Health: " + health;
comboText.text = "Combo: " + combo;
scoreText.text = "Score: " + score;
}
此代码在屏幕上显示文本,并显示变量health
,combo
和score
的值。 health
是双精度型,combo
和score
都是整数。 combo
和score
完美显示时,health
的文本减小1时消失(因此,从100开始,到99.0时消失)。>
为什么会这样?我怀疑它与health
是双精度型有关(因为其他两个整数值可以正常工作)。当我将其更改为整数(从-0.1到-1)时,它开始工作。
我从Unity编辑器链接到的文本尚未在其颜色之外进行格式化,并将其锚定在左上角。
另外,我在属于不同游戏对象的不同脚本中访问了这些值。当该脚本中的生命值增加10(由于游戏对象被“击中”,不能再被“击中”并在之后销毁)时,健康文本会立即显示,然后再次消失。
答案 0 :(得分:2)
问题是小数位数增加到String溢出UI.Text框的大小,然后将其裁剪到视图之外。
要解决此问题,您可以先格式化小数点,然后再将其添加到字符串中:
healthText.text = "Health: " + Math.Round(health,1); // one decimal place
(可选)您可能希望将UI.Text垂直和水平溢出类型设置为overflow
和/或增大rectTransform
的大小。