- Home /
Buttons of Functions?
Hello. Is it possible to build an array of buttons that references specific functions? I am aiming to be able to push functions into an array of buttons as the player advances. Could anyone provide a basic sample of pushing a function into a array please?
Thank you!
Answer by jahroy · May 27, 2011 at 05:19 AM
You could use SendMessage and use a naming convention to call functions by name based on some value in your code.
I had a similar question and solved it like this:
Create a class called ActionButton:
class ActionButton
{
var name : String;
var myLabel : String;
var actionName : String;
var myPosition : Rectangle;
}
Create an array of ActionButtons in your GUI manager script.
Write a function for each button with a name that matches the value of its actionName property.
Draw the buttons in a for loop.
Call the appropriate function if any button is clicked.
public var buttonList : ActionButton [];
function OnGUI ()
{
for ( var butt : ActionButton in buttonList ) {
if ( GUI.Button(butt.myPosition, butt.myLabel) ) {
SendMessage(butt.actionName);
}
}
}
function someActionFunction ()
{
print("You clicked a button with actionName == 'someActionFunction'");
}
Here's a question I asked that is somewhat related:
http://answers.unity3d.com/questions/58228/referencing-functions-from-other-scripts-as-variab.html
Answer by GlennHeckman · May 27, 2011 at 05:14 AM
This is untested, but should give you an idea for one way to approach it.
var myFunctionArray:Array;
function Start()
{
AddFunctionToArray(myFunction);
AddFunctionToArray(myFunction2);
}
function AddFunctionToArray(func)
{
myFunctionArray.push(func);
}
var myFunction = new function():void
{
// do stuff here
}
var myFunction2 = new function():void
{
// do stuff here.
}
function OnGUI()
{
for(var i:int = 0; i < myFunctionArray.Length; i++)
{
if(GUI.Button("Button " + i))
{
myFunctionArray[i]();
}
}
}
Your answer
Follow this Question
Related Questions
Create GUI based on an array 2 Answers
Declare array in other function = error 1 Answer
How to set GUI button "1" to "0"? 1 Answer
Move one vertice of my cube 1 Answer
How to display data from array,arraylist while clicking the button? 1 Answer