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
unity3D中文本对象的相对定位_Unity3d - Fatal编程技术网

unity3D中文本对象的相对定位

unity3D中文本对象的相对定位,unity3d,Unity3d,在Unity中,我希望根据第一个对象的长度将一个UI文本对象与另一个文本对象对齐。比如:“[阿拉丁]说:你好,世界”。 其中“[Aladinn]”是(可点击的)第一个文本,“says:hello world”是第二个文本。 显然,第一个文本的长度可能会有所不同 我找到了一些根据内容设置文本框长度的方法,但是有没有一种方法可以将第二个文本的开头附加到第一个文本的结尾,同时将它们保持为单独的对象 文档页面上的描述没有太大帮助,但该值是“这段文本要多长?”PreferredHeight除了高度之外,其

在Unity中,我希望根据第一个对象的长度将一个UI文本对象与另一个文本对象对齐。比如:“[阿拉丁]说:你好,世界”。 其中“[Aladinn]”是(可点击的)第一个文本,“says:hello world”是第二个文本。 显然,第一个文本的长度可能会有所不同

我找到了一些根据内容设置文本框长度的方法,但是有没有一种方法可以将第二个文本的开头附加到第一个文本的结尾,同时将它们保持为单独的对象

文档页面上的描述没有太大帮助,但该值是“这段文本要多长?”
PreferredHeight
除了高度之外,其他值都是相同的

因此,要找出另一个对象的文本结束的位置,你必须得到它的文本组件并查询它的首选宽度,瞧,你有它的大小(以像素为单位,对于画布对象几乎肯定也是它的场景大小,除非你用比例做了一些不正常的事情)


我在中使用此选项,通过尝试各种宽度和高度值,使鼠标悬停在工具提示上,直到达到所需的比率,从而使工具提示看起来更漂亮。这有点复杂,但这与“首选宽度”和“高度”假设某些事情有关(首选宽度希望字符串显示在一行上,而“首选高度”考虑当前宽度并假设换行包含在所需高度中).

根据您对问题的描述,我建议使用脚本来更改文本的字符串,而不是使用两个单独的文本对象

您可以这样描述问题:

public string name;
public string flavorText;
public Text textUIComponnent;
然后在代码中的某个地方,例如开始:

void Start {
textUIComponnent.text = name + " " + flavorText;
[...]
}