Okay, so I have a message box script that I made and everything is going perfect except sometime the text is too much for the size of the box. Is there any way I can make the box’s height/width change according to how much text there is?
I found something in the GUI docs that can be usefull:
http://unity3d.com/support/documentation/ScriptReference/GUIStyle.CalcSize.html
It shows an example where the rect is calculated according to the label parameter:
function ProgressBar (value : float, label : String) {
var size : Vector2 = GUI.skin.GetStyle("ProgressBarText").CalcSize(GUIContent(label));
var rect : Rect = GUILayoutUtility.GetRect (size.x, Mathf.Max(size.y));
rect = Rect(rect.x + 4, rect.y, rect.width -8, rect.height);
EditorGUI.ProgressBar (rect, value, label);
EditorGUILayout.Space();
}
I’ve not tested this, and I think the GUI docs are somewhat incomplete and obscure, but maybe this can help you.
this may help
` void OnGUI() { GUI.ModalWindow(0, new Rect(Screen.width / 2 - Screen.width / 5, Screen.height / 2 - Screen.height / 4, Screen.width / 5 * 2, Screen.height / 4 + 20), DialogWindow, ""); } private bool showDialogWindow; public void DialogWindow(int id) { { GUILayout.BeginVertical(); { GUILayout.Label("Use this item?"); GUILayout.Space(20); GUILayout.BeginHorizontal(); { GUILayout.Space(20); if (GUILayout.Button("Yes")) { if (selectedUseItem) { DoSomething(); showDialogWindow = false; } } if (GUILayout.Button("No")) showDialogWindow = false; GUILayout.Space(20); } GUILayout.EndHorizontal(); } GUILayout.EndVertical(); } } `