我希望得到我的标签大小。它不会像它应该的那样工作。它获得了大小,但仅适用于标准的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);
}
答案 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,"");
}
见下面的快照: