When I first started learning about Unity the Advanced CSharp Messenger(http://wiki.unity3d.com/index.php/Advanced_CSharp_Messenger) was always recommend to use. But in all my recent learning its either been Delegate/Event or Action used.
I have tried to wrap my head around what is actually best to use.
I prefer using Action since its much cleaner but worried this hurt performance. There must be reason for the Advanced CSharp Messenger existing otherwise why would you go to the length of adding that to the project?
The book “Unity in Action” made me even more confused as its states “…make use of a broadcast messanger system. Although Unity doesn’t have feature built in…”. How can this be true, C# comes with Delegate/Event or Action?