- Home /
 
change button texture from different button press
What I want to do is have a set of buttons that determine what textures could be used, when a user presses this button it will trigger which texture will be used. Then the user can press a different button and it will change the texture of that button to the texture that was select previously from the group of texture buttons.
How do I get it to where the second button will have its texture changed when it is pressed? Please help, below I have my code for both scripts I am using.. Thanks again!
     static var materials    : Material[];
        
         static var textureButton : Texture;
         var brickTexture : Texture;
         var stoneTexture : Texture;
         var glassTexture : Texture;
         var DryWallTexture : Texture;
     
         private var isGlass            : boolean = false;
         private var isStone            : boolean = false;
         private var isBrick            : boolean = false;
         private var isDryWall          : boolean = false;
     
     //Dimensions for the different windows in the UI
         
     private var drawingWindow :Rect = Rect(Screen.width/2 - 800,Screen.height/2-400,1000,680);  
     private var materialsWindow :Rect = Rect(Screen.width/2 + 200,Screen.height/2-400,400,340);
         
     //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);
         
     function OnGUI()
     {
         GUI.Window(1,materialsWindow, materialsWindowFunc, "Material Window");
     }
     
     
     function materialsWindowFunc(windowID: int)
     {
        if(GUI.Button(glassOptionButton, "GL"))
         {
             isGlass = true;
            
             if(isGlass == true)
             {
             isStone = false;
             isBrick = false;
             isDryWall = false;
             //textureButton = materials[2];
            textureButton = glassTexture;
             }
             Debug.Log(textureButton + " This Will be glass");
         }
         if(GUI.Button(stoneOptionButton, "STO"))
         {
             isStone = true;
            
             if(isStone == true)
             {
             isGlass = false;
             isBrick = false;
             isDryWall = false;
             //textureButton = materials[5];
             textureButton = stoneTexture;
            
             }
             Debug.Log(textureButton + "This will be stone");
         }
         if(GUI.Button(brickOptionButton, "BR"))
         {
             isBrick    = true;
        
             if(isBrick == true)
             {
             isGlass = false;
             isStone = false;
             isDryWall = false;
             //textureButton = materials[0];
             textureButton = brickTexture;
            
             }
             Debug.Log(textureButton + "This will be Brick");
         }
         if(GUI.Button(paintedDrywallOptionButton, "PDW"))
         {
             isDryWall = true;
     
             if(isDryWall == true)
             {
             isGlass = false;
             isStone = false;
             isBrick = false;
             //textureButton = materials[3];
            textureButton = DryWallTexture;
             }
             Debug.Log(textureButton + "This will be Drywall");
         }
      
 }
 
               Script 2
import changeMaterials;
 private var changeButton            : Rect = Rect(10,125,50,50);
 
 function OnGUI()
 {
     
     
     if(GUI.Button(changeButton, textureButton))
         {
         
         Debug.Log(textureButton);
 
         }
    
 }
 
              Answer by Sundar · Aug 02, 2012 at 09:57 PM
Have two variables
Textrue selectedTexture;
bool aTextureSelected = false;
in your first set of buttons, when selected assign
selectedTexture = DryWallTexture;// repeat inside all buttons appropriately
aTextureSelected = true;
then in your script 2
 function OnGUI()
 
               {
 if( aTextureSelected )
 {
     textureButton = selectedTexture;
     aTextureSelected = false;
 }
 if(GUI.Button(changeButton, textureButton))
     {
     Debug.Log(textureButton);
     }
 
               }
Does not work it seems, the second button is still having the texture changed off the first button press ins$$anonymous$$d of its own action.
Your answer