怎么了。
我正在实例化一个文本框游戏对象。 然后用文本填充它。
有什么方法可以让文本框的高度动态变化吗?
GameObject reply1 = Instantiate(replyText, transform.position,
transform.rotation);
reply1.transform.SetParent(textArea.transform, false);
Text reply1text = reply1.GetComponent<Text>();
reply1text.text = gameRounds[roundCount].reply[0];
宽度就可以了,不需要改变。
最佳答案
您可以将 ContentSizeFitter 组件添加到文本游戏对象,然后将垂直适合设置为首选尺寸。该解决方案仅控制文本框的高度。
如果您想自动控制父级的高度,请按照以下步骤操作。
- 将垂直布局组添加到父级。
- 添加文本游戏对象作为子级,并添加Content Size Fitter组件。
- 现在尝试更改脚本中文本组件的文本。您会注意到它无法正常工作。您应该手动更新父级的布局组。
{
exampleText.text = "Text Example \n Test automatic height";
Invoke("UpdateParentLayoutGroup", 0.1f);
}...
void UpdateParentLayoutGroup() {
exampleText.gameObject.SetActive(false);
exampleText.gameObject.SetActive(true);
}
- 享受团结!
关于c# - Unity UI 文本框动态高度。如何使其根据文本数量扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46019256/