title: Button.onClick.AddListener Syntax Clarification When Using A Delegate
body: <p>From my research the following syntax works for setting a Unity 4.6+ Button's callback:</p>
  
  <pre><code>_button = GetComponent&lt;Button&gt;();
  _button.onClick.AddListener(delegate { Test(); }); //works
  _button.onClick.AddListener(Test);//works
  
  public void Test()
  {
      Debug.Log("Success");
  }
  </code></pre>
  
  <p>However when I attempted to create a delegate and pass that it's not working</p>
  
  <pre><code>public delegate void AbilityButtonCallback();
  public void SetCallback(AbilityButtonCallback callback)
  {
     _button.onClick.AddListener(callback);
  }
  
  //ERROR: Error  2   Argument 1: cannot convert from 
  'AbilityButtonCallback' to 'UnityEngine.Events.UnityAction'
  </code></pre>
  
  <p>Clearly its saying it can't make my AbilityButtonCallback at UnityEngine.Events.UnityAction type. However I never declared Test() as that type either, Test() is just a void function. So why is it I can pass Test as a parameter and its fine, but if I try to pass it a delegate with a void return type and 0 parameters it doesn't work?</p>
  
  <p>Note:</p>
  
  <p>I know that a lambda expression will work </p>
  
  <pre><code>_button.onClick.AddListener(() =&gt; { callback(); });
  </code></pre>
  
  <p>But I dont understand why you can pass a regular function pointer when my Delegate doesnt' work.</p>