- Home /
Trying to change button background using materials
In my project I want to be able to change background of a button by using the action performed of another button. I was curious as to if using textures or materials would be the best route for this.
Doing so I have code so far as to what I am trying to do. The four buttons will work for a single action but I would like to be able to to keep using if I choose a button and then want to go back to the previous selection by pressing that button.
Please help, (in UnityScript) I am sure this is an easy fix, I am just not seeing it! Thanks again
var materials : Material[];
//Dimensions for the Materials UI
private var glassOptionButton : Rect = Rect(10,20, 50,50);
private var stoneOptionButton : Rect = Rect(65,20, 50,50);
private var brickOptionButton : Rect = Rect(10,72, 50,50);
private var paintedDrywallOptionButton : Rect = Rect(65,72, 50,50);
private var copperOptionButton : Rect = Rect(10,125,50,50);
// Boolean vars for the different materials
private var isGlass : boolean = false;
private var isStone : boolean = false;
private var isBrick : boolean = false;
private var isDryWall : boolean = false;
function OnGUI() {
GUI.Window(1,materialsWindow, materialsWindowFunc, "Material Window");
}
function materialsWindowFunc(windowID: int) {
if(GUI.Button(glassOptionButton, "GL")) { isGlass = true;
if(isGlass == true) { textureButton = materials[2]; } Debug.Log(textureButton); } if(GUI.Button(stoneOptionButton, "STO")) { isStone = true;
if(isStone == true) { textureButton = materials[5]; } Debug.Log(textureButton); } if(GUI.Button(brickOptionButton , "BR")) { isBrick = true;
if(isBrick == true) { textureButton = materials[0]; } Debug.Log(textureButton); } if(GUI.Button(paintedDrywallOptionButton, "PDW")) { isDryWall = true;
if(isDryWall == true) { textureButton = materials[3]; } Debug.Log(textureButton); }
}
Answer by strachpr01 · Aug 01, 2012 at 07:56 PM
you need to reset booleans as they are all staying true. Each button needs to set the other booleans to false when you click them. this should allow you to reuse the buttons. ie
if(GUI.Button(paintedDrywallOptionButton, "PDW")) { isDryWall = true; isBrick = false; isStone = false; isGlass = false; if(isDryWall == true) { textureButton = materials[3]; } Debug.Log(textureButton); }
Your answer
Follow this Question
Related Questions
Creating a GUI Button background texture 2 Answers
change child texture problem 2 Answers
How to set a texture in an image effect material? 1 Answer
transparent background with GUI.DrawTexture 0 Answers
Cutout Material is not showing texture transparency? 0 Answers