title: How to use C# events in Unity3D
body: <p>I've been working with Events for some time with Winforms, but I'm still quite new with Unity stuff. My project is just to get some C# code running on Android so there's no need for a super efficient solution, just a working one.</p>
  
  <p>Event Handler declaration:</p>
  
  <pre><code>public event EventHandler OnShow, OnHide, OnClose;
  </code></pre>
  
  <p>Event Handler call:</p>
  
  <pre><code>Debug.Log("OnShow");
  if (OnShow != null) 
  {
  Debug.Log("OnShow_Firing");
  OnShow(this, new EventArgs()); 
  }
  else{
  Debug.Log("OnShow_empty");
  }
  </code></pre>
  
  <p>Event Handler Added in an other script but the same gameobject</p>
  
  <pre><code>void Awake(){
  Debug.Log("Awake");
  this.gameObject.GetComponent&lt;windowScript&gt;().OnShow += OnShowCalled;
  }
  private void OnShowCalled(object o,EventArgs e)
  {
  Debug.Log("OnShowCalled");
  }
  </code></pre>
  
  <p>My Debug output is following:</p>
  
  <ol>
  <li>"Awake"</li>
  <li>"OnShow"</li>
  <li>"OnShowFiring"</li>
  </ol>
  
  <p>but "OnShowCalled" is never executed, there're no Exceptions in Unity's console. 
  I tested <code>EventArgs.Empty</code> instead of <code>new EventArgs()</code> as mentioned in the comments with no effect on my problem .</p>
  
  <p>Looking forward for any help.</p>