- Home /
How to change the Alpha channel of a GUI button?
Hello everyone,
I'm trying to change the Alpha channel of one of my GUI buttons, so when I hit the button the alpha changes the amount to "0" and disappears. Also I want to change the speed of it.
Please take a look to my script, any advice is welcome.
var Skin_buttonOne : GUISkin;
var Skin_buttonTwo : GUISkin;
var beep : AudioClip;
function OnGUI(){
GUI.color.a = 1;
GUI.skin = Skin_buttonOne;
if (GUI.Button(Rect(870,470,80,39),"")){
audio.PlayOneShot(beep);
GUI.color.a = 0;
}
GUI.skin = Skin_buttonTwo;
if (GUI.Button(Rect(870,512,80,80),"")){
audio.PlayOneShot(beep);
}
}
@script RequireComponent(AudioSource)
Answer by aldonaletto · Jan 23, 2013 at 01:54 AM
You should have a boolean flag to enable alpha decrement: set it to true when the button is pressed, so that the button starts vanishing after being pressed. Alpha must be decremented in Update, since Time.deltaTime must not be used inside OnGUI (it shows the time between frames, not between OnGUI calls). Additionally, you should stop drawing the button when it's invisible to avoid embarrasing clicks!
var Skin_buttonOne : GUISkin;
var Skin_buttonTwo : GUISkin;
var beep : AudioClip;
var duration : float = 1.5; // time taken to disappear
private var alpha: float = 1; // alpha starts at 1
private var vanish = false;
function Update(){
if (vanish){ // only decrement alpha after button pressed
alpha -= Time.deltaTime/duration;
}
}
function OnGUI(){
GUI.color.a = alpha; // set alpha for this button
if (alpha > 0){ // only draw the button while it's visible
GUI.skin = Skin_buttonOne;
if (GUI.Button(Rect(870,470,80,39),"")){
audio.PlayOneShot(beep);
vanish = true; // enable alpha decrement
}
}
GUI.color.a = 1; // restore alpha for other GUI items
GUI.skin = Skin_buttonTwo;
if (GUI.Button(Rect(870,512,80,80),"")){
audio.PlayOneShot(beep);
}
}
@script RequireComponent(AudioSource)
Your answer
![](https://koobas.hobune.stream/wayback/20220613091433im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Can I use a movie texture with alpha as a GUI object? 1 Answer
GUI button alpha images 1 Answer
guiTexture color half alpha White? 1 Answer
Move GUI elements. 0 Answers