c# - Unity UI 文本框动态高度。如何使其根据文本数量扩展?

标签 c# user-interface unity-game-engine

怎么了。

我正在实例化一个文本框游戏对象。 然后用文本填充它。

有什么方法可以让文本框的高度动态变化吗?

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 组件添加到文本游戏对象,然后将垂直适合设置为首选尺寸。该解决方案仅控制文本框的高度。

如果您想自动控制父级的高度,请按照以下步骤操作。

  1. 垂直布局组添加到父级。

enter image description here

  • 添加文本游戏对象作为子级,并添加Content Size Fitter组件。
  • enter image description here

  • 现在尝试更改脚本中文本组件的文本。您会注意到它无法正常工作。您应该手动更新父级的布局组。
  • {
         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/

    相关文章:

    c# - 在 foreach 循环中拆分列表以在每次迭代中添加新行

    java - 创建 GUI 为什么拖放比编写代码更糟糕?

    unity-game-engine - Unity 网络播放器(Oculus Rift 支持)

    unity-game-engine - Unity3D角色 Controller 通过脚本设置速度?

    c# - unity : Why isn't TrailRenderer. GetPosition() 工作吗? "' TrailRenderer' 不包含 'GetPosition' 的定义”

    java - 在 UWP UI 上显示最多分钟的系统时间

    c# - 在 C# Process.Start 参数中使用单引号

    c# - C# 是否为未使用的模板参数生成具体实现?

    user-interface - 比较可以掩盖差异的工具?

    java - Eclipse 中每个 GUI 程序都会出现奇怪的错误