I have a GUILayer script which shows some adjustment settings and I would like to be able to close the GUILayer box with a button. I’ve searched for solutions but can’t find one for my script.
using UnityEngine;
using System.Collections;
public class MolnGUI : MonoBehaviour
{
public bool showBox = true;
public Moln moln;
public Rect rect = new Rect(-3, -3, 300, 450+6);
public const float label_width = 150;
protected void OnEnable()
{
if (!moln)
{
Debug.LogError("Moln instance reference not set. Disabling script.");
this.enabled = false;
}
}
protected void OnGUI()
{
GUILayout.BeginArea(rect, "", "Box");
GUILayout.BeginVertical();
GUILayout.FlexibleSpace();
GUILayout.BeginHorizontal();
GUILayout.FlexibleSpace();
GUILayout.Label("CYCLE");
GUILayout.FlexibleSpace();
GUILayout.EndHorizontal();
GUILayout.BeginHorizontal();
GUILayout.Label("Base Color", GUILayout.Width(label_width));
float cloud= GUILayout.HorizontalSlider(moln.Night.Color.r, 0, 1);
moln.Night.Color = new Color(cloud);
GUILayout.EndHorizontal();
GUILayout.BeginHorizontal();
GUILayout.FlexibleSpace();
GUILayout.Label("CLOUDS");
GUILayout.FlexibleSpace();
GUILayout.EndHorizontal();
GUILayout.BeginHorizontal();
GUILayout.Label("Tone / Shading", GUILayout.Width(label_width));
moln.Clouds.Tone = GUILayout.HorizontalSlider(moln.Clouds.Tone, 0, 2);
moln.Clouds.Shading = GUILayout.HorizontalSlider(moln.Clouds.Shading, 0, 1);
GUILayout.EndHorizontal();
GUILayout.FlexibleSpace();
GUILayout.EndVertical();
GUILayout.EndArea();
}
}
Would really appreciate some guidance!
DaveA
2
protected void OnGUI()
{
if (!showBox)
return;
...
if (GUILayout.Button ("Close"))
showBox = false;
}