- Home /
Editing buttons created in 'for' loop.
Hello!
I use the 'for' loop to create buttons,it works well, but I want to have a little animations playing on the button I click, but the animation plays on all the buttons.
Is there any way to access a certain button properties?
#pragma strict
var ico_note :Texture;
var ar = Array(1,2,3,4);
var mx:float;
function Start () {
}
function OnGUI () {
var dist :int;
GUI.BeginGroup (new Rect (Screen.width / 2 - 400, Screen.height / 2 - 300, 800, 600));
for (i in ar)
{
dist +=130;
if (GUI.Button(Rect(dist,mx,128,128),ico_note))
{
anim();
}
}
GUI.EndGroup();
}
function anim()
{
while (mx <50.0)
{
mx += 0.1;
yield;
}
if ( mx >49 )
{
mx = 0;
}
}
Well, the problem is that you call a method/function which adjusts a variable (mx) that all buttons use. So you probably want to add another array that contains the mx variable for each button. Which would mean that you also need to adjust the anim() function and the call to it..
The call would look like ..
anim(index);//index being just a value that is increased from 0 to the maximum length / count of buttons
and in the function itself you'd need to add a parameter and that it used the variable from the new array..
function anim(int index){ while (array[index] <50.0){ array[index] += 0.1; yield; }
if ( array[index] >49 ){
array[index] = 0;
}
//array being the array with the mx variable for each button
}
Hope that you get the idea and sorry for not posting full code/example.
Okay, tried and re tried, still I cant seem to get it working, I think I am not doing right the part with the new array. If you can show a little example I would be very thankful!
Your answer
Follow this Question
Related Questions
Resolutions 1 Answer
Bool script error 1 Answer
getting !slot->GetLocalAABB().IsValid() and isFinite() errors with GUI Buttons 0 Answers
Creating a component from a button click 1 Answer
Embed GUI Skin in GUI Button 2 Answers