- Home /
Question by
Ryanvanpolen · Aug 14, 2014 at 10:02 PM ·
javascriptguimenudropdownoptions
Dropdown button...
Hi guys... I was working on my main menu, and had to make an drop down button in my options -> interface... My drop-down part is working very well, but I can't select one and the rest of options hide... I was trying to solve the problem for two hours... Help would be fine! Thanks
#pragma strict
var menuSkin : GUISkin;
var buttonFontSize : int;
var mainMenu : boolean;
var start : boolean;
var upgrades : boolean;
var battlepedia : boolean;
var achievements : boolean;
var options : boolean;
var extras : boolean;
var goQuit : boolean;
var editing : boolean;
//toolbar
var toolbarInt : int = 0;
var toolbarStrings : String[] = ["Controls", "Interface", "Sound", "Video"];
//interface options
var Box : Rect;
var items : String[];
var selectedItem : String;
var resolutions : String[];
var selectedResolution : String;
var resolutionCheck : boolean;
var graphics : String[];
var selectedGraphic : String;
var graphicsCheck : boolean;
var subtitles : String[];
var selectedSubtitles : String;
var subtitlesCheck : boolean;
var lockCursor : boolean;
private var changeResolution : boolean = false;
private var changeGraphics : boolean = false;
private var changeSubtitles : boolean = false;
//sound options
var masterVolume : int = 80;
var FXVolume : int = 80;
var musicVolume : int = 80;
var VOVolume : int = 80;
var fidelity : String = "Medium";
function Start () {
mainMenu = true;
start = false;
upgrades = false;
battlepedia = false;
achievements = false;
options = false;
extras = false;
goQuit = false;
editing = false;
resolutions = ["1024 x 576","1280 x 720","1536 x 864","1792 x 1008","1920 x 1080"];
selectedResolution = "1280 x 720";
resolutionCheck = false;
graphics = ["low","medium","good","super","ultra"];
selectedGraphic = "good";
graphicsCheck = false;
subtitles = ["none","deutsch","english","français","italiano","nederlands"];
selectedSubtitles = "none";
subtitlesCheck = false;
lockCursor = false;
}
function OnGUI () {
GUI.skin = menuSkin;
buttonFontSize = Screen.width / 48;
buttonFontSize = GUI.skin.button.fontSize;
if (mainMenu) {
if (GUI.Button (Rect (50, Screen.height / 15, Screen.width / 5, Screen.height / 15), "Play")) {
start = true;
mainMenu = false;
}
if (GUI.Button (Rect (50, Screen.height / 15 * 2.25, Screen.width / 5, Screen.height / 15), "Upgrades")) {
upgrades = true;
mainMenu = false;
}
if (GUI.Button (Rect (50, Screen.height / 15 * 3.5, Screen.width / 5, Screen.height / 15), "Battlepedia")) {
battlepedia = true;
mainMenu = false;
}
if (GUI.Button (Rect (50, Screen.height / 15 * 4.75, Screen.width / 5, Screen.height / 15), "Achievements")) {
achievements = true;
mainMenu = false;
}
if (GUI.Button (Rect (50, Screen.height / 15 * 6, Screen.width / 5, Screen.height / 15), "Options")) {
options = true;
mainMenu = false;
}
if (GUI.Button (Rect (50, Screen.height / 15 * 7.25, Screen.width / 5, Screen.height / 15), "Extras")) {
extras = true;
mainMenu = false;
}
if (GUI.Button (Rect (50, Screen.height / 15 * 8.5, Screen.width / 5, Screen.height / 15), "Quit")) {
goQuit = true;
mainMenu = false;
}
}
var windowSize : Rect = Rect (0, 0, Screen.width, Screen.height);
var startWindowSize : Rect = Rect (Screen.width / 2 - 480, Screen.height / 2 - 270, 960, 540);;
var optionsWindowSize : Rect = Rect (Screen.width / 2 - 480, Screen.height / 2 - 270, 960, 540);
var quitWindowSize : Rect = Rect (Screen.width / 2 - 455, Screen.height / 2 - 100, 910, 170);
if (start) {
startWindowSize = GUI.Window (0, startWindowSize, PlayWindow, "Play");
}
if (upgrades) {
windowSize = GUI.Window (3, windowSize, UpgradesWindow, "Upgrades");
}
if (battlepedia) {
windowSize = GUI.Window (6, windowSize, BattlepediaWindow, "Battlepedia");
}
if (achievements) {
windowSize = GUI.Window (7, windowSize, AchievementsWindow, "Achievements");
}
if (options) {
optionsWindowSize = GUI.Window (8, optionsWindowSize, OptionsWindow, "Options");
}
if (extras) {
windowSize = GUI.Window (9, windowSize, ExtrasWindow, "Extras");
}
if(goQuit) {
quitWindowSize = GUI.Window (10, quitWindowSize, QuitWindow, "Are you sure you want to quit?");
}
}
function PlayWindow (id : int) {
//Campaign, skirmish, multiplayer
}
function UpgradesWindow (id : int) {
//battlepedia
}
function BattlepediaWindow (id : int) {
//battlepedia
}
function AchievementsWindow (id : int) {
//Achievements
}
function OptionsWindow (id : int) {
toolbarInt = GUI.Toolbar(Rect(10, 35, 940, 50), toolbarInt, toolbarStrings);
if (toolbarInt == 0) {
//diplay controls options
GUI.Label(Rect (50, 110, 400, 30), "Zoom sensitivity");
} else if (toolbarInt == 1) {
//display interface options
GUI.Label(Rect (50, 110, 400, 30), "Resolution");
if (GUI.Button(Rect(250, 100, 235, 50), selectedResolution)) {
resolutionCheck = true;
Box = Rect(250, 100, 235, 50);
items = resolutions;
selectedItem = selectedResolution;
changeResolution = editing;
editing = true;
}
if (changeResolution) {
Dropdown();
}
} else if (toolbarInt == 2) {
//display sound options
GUI.Label(Rect (50, 110, 400, 30), "Master volume");
GUI.Label(Rect (860, 110, 400, 30), masterVolume + "%");
masterVolume = GUI.HorizontalSlider (Rect (350, 120, 500, 30), masterVolume, 0, 100);
GUI.Label(Rect (50, 150, 400, 30), "FX volume");
GUI.Label(Rect (860, 150, 400, 30), FXVolume + "%");
FXVolume = GUI.HorizontalSlider (Rect (350, 160, 500, 30), FXVolume, 0, 100);
GUI.Label(Rect (50, 190, 400, 30), "Music volume");
GUI.Label(Rect (860, 190, 400, 30), musicVolume + "%");
musicVolume = GUI.HorizontalSlider (Rect (350, 200, 500, 30), musicVolume, 0, 100);
GUI.Label(Rect (50, 230, 400, 30), "VO volume");
GUI.Label(Rect (860, 230, 400, 30), VOVolume + "%");
VOVolume = GUI.HorizontalSlider (Rect (350, 240, 500, 30), VOVolume, 0, 100);
} else if (toolbarInt == 3) {
//display video options
}
if (GUI.Button (Rect (10, 480, 235, 50), "Cancel")) {
//cancel...
options = false;
mainMenu = true;
}
if (GUI.Button (Rect (372.5, 480, 235, 50), "Default")) {
//reset every option
options = false;
mainMenu = true;
}
if (GUI.Button (Rect (715, 480, 235, 50), "Apply")) {
//save these options first!!
options = false;
mainMenu = true;
}
}
function ExtrasWindow (id : int) {
//Extras
}
function QuitWindow (id : int) {
if (GUI.Button (Rect (70, 50, 350, 80), "Yes")) {
Application.Quit();
}
if (GUI.Button (Rect (490, 50, 350, 80), "No")) {
goQuit = false;
mainMenu = true;
}
}
function Dropdown () {
for (var x : int = 0; x < items.Length; x++) {
if (GUI.Button(Rect(Box.x, (Box.height * x) + Box.y + Box.height, Box.width, Box.height), items[x])) {
selectedItem = items[x];
if (resolutionCheck) {
selectedItem = selectedResolution;
} else if (graphicsCheck) {
selectedItem = selectedGraphic;
} else if (subtitlesCheck) {
selectedItem = selectedSubtitles;
}
editing = false;
}
}
}
Comment
Your answer
Follow this Question
Related Questions
How to use options in the Dropdown menu UI? 2 Answers
Stat bars in Menu system? 1 Answer
Setting Scroll View Width GUILayout 1 Answer
Web player screen resolution GUI placement 1 Answer
Horizontal Slider with Labels 3 Answers