How to use C# events in Unity3D
<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>