- Home /
GUI.Button To Change Weapons On Screen
Hello everyone,
I am trying to let the player/gamer choose between 2 weapons by clicking a button on the screen. With the Javascript below, I cannot get bullSelect or missSelect to return true when the specific button is pressed. The Debug.Log will show but the variables stay false. What is it that I am missing to get the variables to return true after the button is selected?
Thanks in advance for taking a look.
var bullet : Transform;
var missile : Transform;
var bulletFire : AudioClip;
var missileFire : AudioClip;
var buttonStyle : GUIStyle;
var bullSelect = false;
var missSelect = false;
function Start () {
}
function Update ()
{
if (Input.GetKeyDown("space"))
{
if(bullSelect == true)
{
audio.clip = bulletFire;
audio.Play();
Instantiate(bullet, transform.position, transform.rotation);
}
}
if (Input.GetKeyDown("space"))
{
var G : GameObject = GameObject.FindGameObjectWithTag("Missile");
if(!G && missSelect == true)
{
audio.clip = missileFire;
audio.Play();
Instantiate(missile, transform.position, transform.rotation);
}
}
}
function OnGUI ()
{
if(GUI.Button(Rect(180,Screen.height -80,90,30),"Bullet", buttonStyle))
{
missSelect = false;
bullSelect = true;
Debug.Log("You have selected the Bullet");
}
if(GUI.Button(Rect(180,Screen.height -40,90,30),"Missile", buttonStyle))
{
bullSelect = false;
missSelect = true;
Debug.Log("You have selected the Missile");
}
}
Answer by fbic333 · Mar 27, 2014 at 04:57 AM
So the answer is.. NOTHING!! I shut down the computer and tried again the next morning and everything was fine. Works like a charm. At first maybe I thought I had to push stop and replay to get the script changes to take effect. But when all else fails save, shut down, and restart.
(My question to the community is whether I should keep this post or delete it, seeing there was really no need for an answer. I will edit this part out if kept.)
Answer by emingo · Mar 27, 2014 at 06:30 AM
I didn't test your code but once I had a similar problem and I just solved it by initializing the variables in the Start function instead of doing it right in the declaration.
That is a good idea. I always forget about trying that at certain times.