UnityTMP_InputField多行输入时的高度适应
- 电脑硬件
- 2025-09-12 16:57:02

实现
设定输入框的行类型为多行新建行。
inputField.lineType = TMP_InputField.LineType.MultiLineNewline;进行输入时调整输入框高度。
height = inputField.textComponent.preferredHeight + offset; if (height <= minHeight) { rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, minHeight); } else { rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, height); }*offset 为Text Area 与 InputField (TMP) 的高度差,默认高度差通常为13。
更新Text Component 和Caret 位置。
inputField.textComponent.rectTransform.anchoredPosition = Vector2.zero; if (inputField.GetComponent<TMP_SelectionCaret>()) { inputField.GetComponent<TMP_SelectionCaret>().rectTransform.anchoredPosition = Vector2.zero; }每帧结束强制带有LayoutGroup 组件的父面板进行内部数据重新计算。
LayoutGroup[] layouts = GetComponentsInParent<LayoutGroup>(); for (int i = 0; i < layouts.Length; i++) { LayoutGroup layout = layouts[i]; RectTransform rect = layout.transform as RectTransform; rect.ForceUpdateRectTransforms(); LayoutRebuilder.ForceRebuildLayoutImmediate(rect); } 效果UnityTMP_InputField多行输入时的高度适应由讯客互联电脑硬件栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“UnityTMP_InputField多行输入时的高度适应”
上一篇
矩阵压缩存储