UnityAction Vs UnityEvent

I have been using Unity for a while now and I recently stumbled on these two. From what I understand UnityAction performs the same way as an event in traditional C#. They can add functions to themselves and run them when called like Events in traditional C#. I looked into the documentation of UnityAction here:

However, then what does UnityEvent do? Unity Event also makes methods run using the AddListener. So what’s the difference?
Thanks in Advance.

The definition of UnityAction is the following:

public delegate void UnityAction();

As you can see, it’s a simple delegate with no argument, and returning void.


A UnityEvent is just another way to handle events with the (great) possibility to be serialized so as to be used in the Editor (Inspector) in contrary to plain C# events. A simple example is the onClick event of a Button.

Here are some interesting resources