Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在unity中,如何设置文本高度以确保至少显示一行_C#_Unity3d - Fatal编程技术网

C# 在unity中,如何设置文本高度以确保至少显示一行

C# 在unity中,如何设置文本高度以确保至少显示一行,c#,unity3d,C#,Unity3d,看我的截图。当字体大小为14时,高度至少需要为19才能显示一行文本。当字体大小为30时,高度至少需要为41才能显示一行文本。如果我知道文本字体大小,有没有公式可以得到文本的最小高度 以下解决方案之一可以解决您的问题: 选项1:使文本无论大小始终可见 在inspector中,将垂直溢出属性设置为溢出,以便即使文本不符合框的垂直约束,也始终显示文本 选项2:使文本自动调整大小以适应空间 在inspector中,选中“最佳匹配”复选框,然后输入希望文本的最小和最大大小。然后文本将自行调整大小,使其尽

看我的截图。当字体大小为14时,高度至少需要为19才能显示一行文本。当字体大小为30时,高度至少需要为41才能显示一行文本。如果我知道文本字体大小,有没有公式可以得到文本的最小高度


以下解决方案之一可以解决您的问题:

选项1:使文本无论大小始终可见

在inspector中,将
垂直溢出
属性设置为
溢出
,以便即使文本不符合框的垂直约束,也始终显示文本

选项2:使文本自动调整大小以适应空间


在inspector中,选中“最佳匹配”复选框,然后输入希望文本的最小和最大大小。然后文本将自行调整大小,使其尽可能大而不会溢出。

我找到了tmp解决方案,如果我需要确保文本至少显示一行,我可以设置

水平溢流:溢流

垂直溢流:溢流

它总是显示文本,但可能显示多行,所以如果我只想显示一行,我需要另一种方式

这可能是由于字体的设计方式

在本例中,我们感兴趣的是紫色和绿色线条之间的差异,以及蓝色和橙色之间的差异。字体的“大小”是绿色和蓝色线条之间的高度(粗略地说)。某些字体可能被设计为比此标准高或短,但系统呈现它们的方式将基于此标准(因此可能无法正确呈现)。这就是为什么相同大小的字体看起来更小的原因

还有一些来自你自己的帖子的数字,还有一些在Unity中乱搞的额外数字

您的文本高度必须是
Math.Ceil(font\u size*1.35)
大小…但倍增取决于您使用的特定字体!Unity的默认Arial字体的倍增率为12%(1.12),我在资产文件夹中使用的另一种字体需要25%

找到这个乘数最简单的方法是将字体大小设置为100,然后找到显示所需的高度。知道了这个比例,你就能正确计算出给定字体大小所需的高度