【问题标题】:Unity UI TextBox Dynamic Height. How do I make it expand based on text amount?Unity UI 文本框动态高度。如何根据文本数量使其扩展?
【发布时间】:2018-02-11 15:23:33
【问题描述】:

怎么了。

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

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

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];

宽度没问题,不用改。

【问题讨论】:

    标签: c# user-interface unity3d


    【解决方案1】:

    您可以将 ContentSizeFitter 组件添加到文本游戏对象,然后将 Vertical Fit 设置为 Prefered Size。此方案只控制文本框的高度。

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

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

    1. Text 游戏对象添加为子对象并添加 Content Size Fitter 组件。

    1. 现在尝试在脚本中更改文本组件的文本。你会注意到它不能正常工作。您应该手动更新父级的布局组。
    {
         exampleText.text = "Text Example \n Test automatic height";
         Invoke("UpdateParentLayoutGroup", 0.1f);
    }...
    
    void UpdateParentLayoutGroup() {
         exampleText.gameObject.SetActive(false);
         exampleText.gameObject.SetActive(true);
    }
    
    1. 享受团结!

    【讨论】:

      【解决方案2】:

      您可以将文本框的垂直溢出设置更改为溢出。它会根据文本内容自动增加文本框的高度。

      【讨论】:

      • 这只会溢出文本,让它在其尺寸之外继续。它不会像 OP 要求的那样改变文本框的高度。如果您想动态更新大小以适应某个区域,即随着添加更多文本而增长的滚动区域,这将不起作用。
      猜你喜欢
      • 2012-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-20
      • 1970-01-01
      • 2015-10-20
      • 1970-01-01
      相关资源
      最近更新 更多