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!

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:

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*();*

}

}
}