Yara_M
Yara_M

Reputation: 633

Unity3d stretch GUI.Box

I newby to Unity and I write a simple tic-tac-toe game for mobile devices. I have troubles with GUI.Box. I try to make it stretch, but it does not work and text is clipped. My code:

GUIStyle lBoxStyle = new GUIStyle(GUI.skin.box);
lBoxStyle.stretchWidth = true;
lBoxStyle.stretchHeight = true;
lBoxStyle.wordWrap = true;
lBoxStyle.fontSize = 48;
lBoxStyle.normal.textColor = Color.black;
GUI.Box(new Rect((virtualWidth - mBoxWidth) / 2, (virtualHeight - mBoxHeight) / 2, mBoxWidth, mBoxHeight), mAlert, lBoxStyle);

How can I fix it?
Also how I can reduce size if text is short?

Upvotes: 0

Views: 487

Answers (1)

maZZZu
maZZZu

Reputation: 3615

First find out what is the size of the content with CalcSize. Then use that size to make the box tightly fitted around the content.

    GUIStyle lBoxStyle = new GUIStyle(GUI.skin.box);
    lBoxStyle.stretchWidth = true;
    lBoxStyle.stretchHeight = true;
    lBoxStyle.wordWrap = true;
    lBoxStyle.fontSize = 48;
    lBoxStyle.normal.textColor = Color.Black;

    // Caculate the size of the content
    Vector2 size = lBoxStyle.CalcSize(new GUIContent(mAlert));

    // Padding if needed
    // size += new Vector2(10, 10)

    // Use the size as the size of the element
    GUI.Box(new Rect((virtualWidth - size.x) / 2, (virtualHeight - size.y) / 2, size.x, size.y), mAlert, lBoxStyle);

Upvotes: 1

Related Questions