团结|标签宽度

时间:2014-12-30 21:31:10

标签: user-interface unity3d label width

我希望得到我的标签大小。它不会像它应该的那样工作。它获得了大小,但仅适用于标准的fontsize。但我没有使用标准版。

这可能是一个问题:“无法在皮肤中找到样式'FontStyle''GameSkin'重绘UnityEngine.GUISkin:GetStyle(String)”

我有这个代码:
    string test =“test”;     Vector2 SizeVect;     public int FontSize = 1;     Rect TestRect:

void OnGUI(){
   TestRect = new Rect(...);
   FontStyle = new GUIStyle();
   FontStyle.fontSize = FontSize;
   SizeVect = GUI.skin.GetStyle("FontStyle").CalcSize(new GUIContent(test));
   GUI.Label(TestRect, test, FontStyle);
}

1 个答案:

答案 0 :(得分:0)

尝试以下代码,文档here

SizeVect = GUI.skin.label.CalcSize(new GUIContent(test));

更新:当字体大小改变时,这也有效。

private float fontSize = 12;
void OnGUI()
{
    fontSize = GUI.HorizontalSlider(new Rect(50, 50, 200, 20), fontSize, 8, 64);

    var str = "ABCDEFG";
    var style = GUI.skin.label;
    style.fontSize = (int)fontSize;
    var size = style.CalcSize(new GUIContent(str));
    var rect = new Rect(100, 100, size.x, size.y);
    GUI.Label(rect,str );
    GUI.Box(rect,"");
}

见下面的快照:

enter image description here

相关问题