【发布时间】:2014-12-08 13:18:05
【问题描述】:
我有一个 InputField,当从服务器返回一个字符串时,文本会被填充。我们可以调试整个文本,以便我们正确接收它。但是文本太长,无法放入我们的 InputField。 我基本上需要的是统一提供的内容大小调整器的想法(InputFields 设计不支持内容大小调整器) 目前我们正在尝试使用以下 sn-p 代码更新 InputField 的大小。
var x = new GUIStyle();
var rectTransform = pvText.GetComponent<RectTransform>();
var words = pvText.text.Split(' ');
var currentWidth = 0f;
var currentHeight = 0f;
foreach (var word in words)
{
var size = x.CalcSize(new GUIContent(word + "A"));
var height = x.CalcHeight(new GUIContent(word), size.x);
currentWidth += size.x;
if (currentWidth >= rectTransform.sizeDelta.x)
{
currentWidth = size.x;
currentHeight += height + pvText.textComponent.lineSpacing;
}
}
rectTransform.sizeDelta = new Vector2(rectTransform.sizeDelta.x, currentHeight);
【问题讨论】:
-
新版 GUI(即 4.6+)还是旧版 GUI?
-
新版unity 4.6
标签: c# user-interface text unity3d