我正在尝试创建一个带有动态(其文本内容可能有所不同)前缀的InputField(TextMesh Pro)。 这个壮观的图像应该可以说明目标。
因此,我将TextMeshPro文本设置为前缀,并且通过脚本我试图相应地“移动” TextArea。 事实是,TextArea是一个RectTransform,并且我正在ScreenSpace渲染模式下运行。
我正在尝试这样:
private TextMeshProGUI prefix;
private RecTransform textArea;
public void ChangePrefixTo(string newPrefix)
{
float oldWidth = prefix.preferredWidth;
prefix.text = newPrefix;
float newWidth = prefix.preferredWidth;
Vector2 newPos = new Vector2();
newPos.x = textArea.position.x + (newWidth - oldWidth);
newPos.y = textArea.position.y;
textArea.position = newPos;
}
,但是textArea被射入星空。 如何根据TextMeshPro文本的大小映射RectTransform位置?
感谢您的帮助,鲸鱼万岁
答案 0 :(得分:1)
您可以使用水平布局组中的两个元素,而不必使用脚本来调整前缀的大小,只需检查 Width 子控件的大小即可。
添加布局元素并设置“首选宽度”以定义TextArea的大小。
前缀将根据他的内容缩放,并随着文本区域的增长而推动文本区域。
您可以在此处找到一个演示:https://gph.is/2y0RXu0