i like chage color of a gameObject with Gui menu using one Gui.Button (i know that with one button for color is easy) some how this:
if (GUI.Button (Rect (150,40,30,20), ">>")) {
gameObject.Find("figuras").renderer.material.color = Color.blue;
but i like only one button for lots colors maybe six: yellow, blue, red, green, white and black
in my code the buttons only can change for one color i like a diferent color each click
Maybe this can work! Tested, works fine!
var colour1 = false;
var colour2 = false;
var colour3 = false;
var colour4 = false;
var colour5 = false;
var colour6 = false;
var show1 = true;
var show2 = false;
var show3 = false;
var show4 = false;
var show5 = false;
var show6 = false;
function OnGUI (){
if (show1 == true)
{
if (GUI.Button (Rect (150,40,30,20), ">>"))
colour1 = true;
if (colour1 == true)
{
colour6 = false;
show1 = false;
gameObject.Find("figuras").renderer.material.color = Color.blue;
show2 = true;
}
}
if (show2 == true)
{
if (GUI.Button (Rect (150,40,30,20), ">>"))
colour2 = true;
if (colour2 == true)
{
show2 = false;
colour1 = false;
gameObject.Find("figuras").renderer.material.color = Color.red;
show3 = true;
}
}
if (show3 == true)
{
if (GUI.Button (Rect (150,40,30,20), ">>"))
colour3 = true;
if (colour3 == true)
{
show3 = false;
colour2 = false;
gameObject.Find("figuras").renderer.material.color = Color.yellow;
show4 = true;
}
}
if (show4 == true)
{
if (GUI.Button (Rect (150,40,30,20), ">>"))
colour4 = true;
if (colour4 == true)
{
show4 = false;
colour3 = false;
gameObject.Find("figuras").renderer.material.color = Color.green;
show5 = true;
}
}
if (show5 == true)
{
if (GUI.Button (Rect (150,40,30,20), ">>"))
colour5 = true;
if (colour5 == true)
{
show5 = false;
colour4 = false;
gameObject.Find("figuras").renderer.material.color = Color.white;
show6 = true;
}
}
if (show6 == true)
{
if (GUI.Button (Rect (150,40,30,20), ">>"))
colour6 = true;
if (colour6 == true)
{
show6 = false;
colour5 = false;
gameObject.Find("figuras").renderer.material.color = Color.black;
show1 = true;
}
}
}
I help to make the script shorter:
var btn_Colors=[Color.blue,Color.red,Color.yellow,Color.green,Color.white,Color.black];
var btn_Count:int;
function OnGUI(){
if (GUI.Button (Rect (150,40,30,20), ">>"))
btn_Count++;
if (GUI.Button (Rect (50,40,30,20), "<<"))
btn_Count--;
if(btn_Count==btn_Colors.length)
btn_Count=0;
else if(btn_Count==-1)
btn_Count=btn_Colors.length-1;
gameObject.Find("figuras").renderer.material.color = btn_Colors[btn_Count];
}
If you want any changes in color or add new colors, just edit var btn_Colors. It will save a lot of time than doing it manually. **That's the goal of programming, efficient and flexibility.