- Home /
GUIlayout scrollbar, Not working well...
Hi,
I'm trying to add a scroll bar to a menu I have but it comes out like this:
It doesn't even scroll with click or mouse wheel.
The code:
if (settingsButton){
GUILayout.BeginArea(new Rect(350, 90, 400, 300),"","box");
GUILayout.BeginScrollView(scrollPosition,GUILayout.Width(400),GUILayout.Height(300));
GUILayout.Box("Settings:");
GUILayout.Space(5);
GUILayout.Box("Sound:");
GUILayout.Label("Volume:");
GUILayout.BeginHorizontal();
AudioListener.volume = GUILayout.HorizontalSlider (AudioListener.volume, 0.0f, 1.0f);
GUILayout.Label(""+ AudioListener.volume.ToString("0.0"),"labelSound",GUILayout.MaxWidth(100));
GUILayout.EndHorizontal();
GUILayout.Space(10);
GUILayout.Box("Grahpics:");
GUILayout.Space(500); // test scroll
fullscreenBool = GUILayout.Toggle(fullscreenBool,"FullScreen?");
FullScreen();
GUILayout.EndScrollView();
GUILayout.EndArea();
}
Without the GUIlayout.height/width it looks how its meant to, but still it does not scroll with mouse or click.
Answer by CodeMasterMike · Jan 21, 2013 at 09:57 AM
You need to store the scrollposition as well.
Here is a example from the documentation:
var scrollPosition : Vector2 = Vector2.zero;
function OnGUI ()
{
scrollPosition = GUI.BeginScrollView (Rect (10,300,100,100), scrollPosition, Rect (0, 0, 220, 200));
GUI.EndScrollView ();
}
As you see, the function returns a vector value which states where the position of the scroll is. Without storing the scroll position the GUI can't use the scroll function. See the BeginScrollView documentation for more information.
Good luck!
Just wow, That is the second time today I have made that mistake, Thanks.
Your answer
Follow this Question
Related Questions
How to disable ScrollView dragging 4 Answers
How to change thickness of ScrollBar of GUILayout ScrollView? 0 Answers
Suppress Horizontal Scrollbar? 2 Answers