Hello. I need help with a flickering menu. This code I purchased for a menu system. The problem with it is when the background rect expands after clicking on “RoomViews” button to expose 8 sub buttons, it doesn’t collapse back to it’s original size when I toggle “Room view” button back. I added code to make this happen, but I think I have it in the wrong place because that’s when the flickering started. Can someone help me figure out where I need to put the code in order to stop the flickering? The code I added was this:
bool ToggleButton( bool toggle, string text )
{
if (toggle==false)
windowRect = new Rect (20, 110, 170, 60);
if(GUILayout.Button( text ))
return !toggle;
else
if (toggle==true)
windowRect = new Rect (20, 110, 170, 60);
return toggle;
}
An example of what happens if I don’t put in the “windowRect = new Rect (20, 110, 170, 60);” in the ToggleButton section is attached. With the code, “Floorplan Navigation” rect along with the buttons inside it flicker everytime I use left or right mouse buttons. What it looks like is happening is the rect goes really small vertically the resets itself according to the new Rect code I put in. Any help would be appreciated. The whole code is below:
using UnityEngine;
using System.Collections;
public class ControlGUI : MonoBehaviour
{
private Rect windowRect = new Rect (20, 110, 170, 50);
public GameObject[] cameras;
private string[] camNames;
public string[] sceneNames;
public Texture[] textures;
public Waypoint[] waypoints;
private string[] wayNames;
private string[] texNames;
// Use this for initialization
void Start ()
{
camNames = new string[cameras.Length];
texNames = new string[textures.Length];
wayNames = new string[waypoints.Length];
for(int i = 0; i < cameras.Length; i++)
camNames _= cameras*.name;*_
* for(int i = 0; i < textures.Length; i++)*
texNames = textures*.name;*
* for(int i = 0; i < waypoints.Length; i++)*
wayNames = waypoints*.name;*
* }*
* // Update is called once per frame*
* //void Update ()*
// {
// }
* void OnGUI(){*
* windowRect = GUILayout.Window (0, windowRect, DoControls, “Quick Walk Through”);*
* // The window can be dragged around by the users - make sure that it doesn’t go offscreen.*
* //windowRect.x = Mathf.Clamp (windowRect.x, 0.0f, Screen.width - windowRect.width);*
* //windowRect.y = Mathf.Clamp (windowRect.y, 0.0f, Screen.height - windowRect.height); *
* }*
* bool switchScene;*
* bool switchCam;*
* bool switchWaypoint;*
* //bool toggleQuality;*
* void DoControls(int windowID)*
* {*
* //GUI.DragWindow (new Rect (0,0, float.MaxValue, 20));*
* if(cameras.Length > 0){*
* switchCam = ToggleButton(switchCam, “2D Floorplan Layout”);*
* if(switchCam)*
* cameraSwitchControls();*
* }*
* if(waypoints.Length > 0)*
* {*
* switchWaypoint = ToggleButton(switchWaypoint, “Room Views”);*
* if(switchWaypoint)*
* waypointSwitchControls();*
* }*
* if(sceneNames.Length > 0){*
* switchScene = ToggleButton(switchScene, “Other Floor Plans”);*
* if(switchScene)*
* sceneSwitchControls();*
* }*
* //toggleQuality = ToggleButton(toggleQuality, "Toggle Quality: " + QualitySettings.currentLevel.ToString());*
* //if(toggleQuality)*
* //{*
* //i//f(GUILayout.Button(“Increase Quality”))*
* //QualitySettings.IncreaseLevel();*
* //if(GUILayout.Button(“Decrease Quality”))*
* //QualitySettings.DecreaseLevel();*
* }*
* //}*
* bool ToggleButton( bool toggle, string text )*
* { *
* if (toggle==false) *
* windowRect = new Rect (20, 110, 170, 60);*
* if(GUILayout.Button( text ))*
* return !toggle;*
* else*
* if (toggle==true) *
* windowRect = new Rect (20, 110, 170, 60);*
* return toggle;*
* }*
* int sceneSelect = -1;*
* public float sceneButtonHeight = 0;*
* public float sceneButtonWidth = 0;*
* void sceneSwitchControls ()*
* {*
* sceneSelect = GUILayout.SelectionGrid(sceneSelect, sceneNames, 1, GUILayout.Height(sceneButtonHeight), GUILayout.Width(sceneButtonWidth));*
* if(sceneSelect != -1){*
* Application.LoadLevel(sceneNames[sceneSelect]);*
* }*
* }*
* int camSelect = -1;*
* public float cameraButtonHeight = 0;*
* public float cameraButtonWidth = 0;*
* void cameraSwitchControls(){*
* camSelect = GUILayout.SelectionGrid(camSelect, camNames, 1, GUILayout.Height(cameraButtonHeight), GUILayout.Width(cameraButtonWidth));*
* if(camSelect != -1){*
* for(int i = 0; i < cameras.Length; i++)*
* {*
* if(i == camSelect){*
* cameras[camSelect].gameObject.active = true;*
* cameras[camSelect].tag = “MainCamera”;*
* }*
* else{*
_ cameras*.gameObject.active = false;
cameras.tag = “Untagged”;
}
}
camSelect = -1;
}
}*_
* int waySelect = -1;*
* public float waypointButtonHeight = 0;*
* public float waypointButtonWidth = 0;*
* void waypointSwitchControls ()*
* {*
* waySelect = GUILayout.SelectionGrid(waySelect, wayNames, 1, GUILayout.Height(waypointButtonHeight), GUILayout.Width(waypointButtonWidth));*
* if(waySelect != -1)*
* GameObject.FindWithTag(“Player”).transform.position = waypoints[waySelect].Position;*
* waySelect = -1;*
* }*
}
_*