- Home /
GUILayout Showing options not defined.
I have some problems with my code. The problem is that in my GUI it comes up with old choices where I defined some new ones. I cannot see where this problem come into play. This is the code: What shows up at the "buff? debuff? none?" label is "Yes" and "No" buttons
#pragma strict
var GuiHeight : int;
var GuiLength : int;
private var menu : boolean = false;
var guiSkin : GUISkin;
var firstElements : String[] = ["Nature","Fire","Water","Eath","Wind"];
var secoundElements : String[] = ["Fire","Water","Eath","Wind"];
var Buffchocies : String[] = ["Buff","Debuff","None"];
var Targetchocies : String[] = ["Self","AoE","Projectile"];
var frtEle = 0;
var scdEle = 0;
var casted = 0;
var Isbuff = 0;
var Name = "Write name here.";
var frtEffect = "";
var scdEffect = "";
var level : int;
var scriptRef : MagicSkillHolder;
function Awake(){
scriptRef = GetComponent(MagicSkillHolder);
}
function Update () {
if(Input.GetKeyUp(KeyCode.X)){
OnOffMenu();
}
}
function Start(){
GuiLength = Screen.width/2-200;
}
function OnGUI () {
GUI.skin = guiSkin;
if(menu){
GUI.Box (Rect (GuiLength,200,530,530), "Menu");
Name = GUI.TextField(Rect(GuiLength+70,230,200,20),Name,99);
GUI.Label(Rect(GuiLength+70,270,500,200),"First Sign");
GUI.BeginGroup(Rect(GuiLength+70,300,500,200));
frtEle = GUILayout.SelectionGrid (frtEle, firstElements, firstElements.Length);
GUI.EndGroup();
GUI.Label(Rect(GuiLength+70,330,500,200),"Secound Sign");
GUI.BeginGroup(Rect(GuiLength+70,330,500,200));
scdEle = GUILayout.SelectionGrid (scdEle, secoundElements, secoundElements.Length);
GUI.EndGroup();
GUI.Label(Rect(GuiLength+70,390,500,200),"Casting Target");
GUI.BeginGroup(Rect(GuiLength+70,360,500,200));
casted = GUILayout.SelectionGrid (casted, Targetchocies, Targetchocies.Length);
GUI.EndGroup();
GUI.Label(Rect(GuiLength+70,440,500,200),"Buff? Debuff? None?");
GUI.BeginGroup(Rect(GuiLength+70,390,500,200));
Isbuff = GUILayout.SelectionGrid(Isbuff,Buffchocies,Buffchocies.Length);
GUI.EndGroup();
GUI.Label(Rect(GuiLength+70,490,520,200),"Level");
level = GUI.HorizontalSlider(Rect(GuiLength+70,510,200,20),level,0,10);
if(GUI.Button(Rect(GuiLength+70,530,90,45),"Make Magic")){
switch(frtEle){
case 0:
frtEffect = "Nature";
break;
case 1:
frtEffect = "fire";
break;
case 2:
frtEffect = "water";
break;
case 3:
frtEffect = "earth";
break;
case 4:
frtEffect = "wind";
break;
}
switch(scdEle){
case 0:
scdEffect = "fire";
break;
case 1:
scdEffect = "water";
break;
case 2:
scdEffect = "earth";
break;
case 3:
scdEffect = "wind";
break;
}
scriptRef.makeSpell(level*30,level,Name, frtEffect, scdEffect, casted, Isbuff);
}
if(GUI.Button(Rect(GuiLength+160,530,90,45),"Cancle")){
OnOffMenu();
}
}
}
function OnOffMenu(){
//Freeze Time Scale to 0 if Window is Showing
if(!menu && Time.timeScale != 0.0){
menu = true;
Time.timeScale = 0.0;
Screen.lockCursor = false;
}else if(menu){
menu = false;
Time.timeScale = 1.0;
Screen.lockCursor = true;
}
}
Answer by VesuvianPrime · Jan 31, 2015 at 03:28 AM
I'm wondering if your code recompiled. Have you since tried restarting Unity?
Have you tried syncing the MonoDevelop project? http://i.gyazo.com/b6e97aa881bfb7212c3d67fd29cf5014.png
Your answer
Follow this Question
Related Questions
"'UnityEngine.GUI.DoTextField' is inaccessible due to its protection level." 1 Answer
Grid of GUILayout buttons? 1 Answer
Why can't I get my tooltip to show only when there is a tooltip set? 2 Answers
GUI.Window error. InvalidOperationException: Hashtable.Enumerator: snapshot out of sync. 0 Answers
know GUILayout current screen position 2 Answers