`System.Action` と `UnityAction` の主な違いは何か。

基本的にはデリゲートだが、`UnityEvent` のリスナーとして登録する場合など、Unityのシリアライズシステムとの親和性やAPI要件として `UnityAction` が使われる。C#標準としては `Action` が一般的。