title: Assigning a method name to UnityAction(Delegate)
body: <p>This is a sample code to declare UnityAction array.<br/>
  And assign each method on the elements.</p>
  
  <pre><code>public class Car {
      int _wheels;
      public Car(int wheels){_wheels = wheels;}
      public void Go(){
          Debug.Log ("GO:"+_wheels);
      }
  }
  
  public class UnityEventTest : MonoBehaviour {
      void Start()
      {
          UnityAction []action = new UnityAction[2];
  
          //case #1
          action[0] = new UnityAction(FuncA);
          //case #2
          action[1] = FuncB;
  
          action[0].Invoke ();
          action[1].Invoke ();
  
          //----------------------------------
          Car aCar = new Car(1);
          Car bCar = new Car(2);
  
          Car []carList = new Car[2];
          carList[0] = aCar;
          carList[1] = bCar;
  
          carList[0].Go();
          carList[1].Go();
      }
      void FuncA(){Debug.Log ("A");}
      void FuncB(){Debug.Log ("B");}
  }
  </code></pre>
  
  <p>Both of <em>Case #1</em> and <em>Case #2</em> work well.<br/></p>
  
  <p>Output:<br/></p>
  
  <pre><code>A
  B
  GO:1
  GO:2
  </code></pre>
  
  <p>But, I don't understand why <em>case #2</em> works? <br/>
  There may be no UnityAction instance in each array elements. <br/>
  The code just assign class's method. And, As far as I know <strong>C# delegate</strong>(like <strong>UnityAction</strong>) is a <strong>reference data type</strong>.<br/><br/></p>
  
  <p>So I think <em>case #2</em> should make some error or can not be assigned.</p>
  
  <p>Unlike the car's case below, I think a method name is not an instance. </p>