title: Unity ScriptableObject, UnityEvent & GenericObject usage
body: <p>I would like to combine <code>ScriptableObject</code> along with <code>UnityEvent</code> and GenericObject usage. My ultimate goal is to create generic event and listener and then use ScriptableObject to create specific events e.g. GameObject, int and etc. and handle these with respective listeners.
  Here is the code I have so far:
  <strong>EventTemplate.cs</strong></p>
  
  <pre><code>using System.Collections.Generic;
  using UnityEngine;
  
  public class EventTemplate&lt;T&gt; : ScriptableObject {
      private List&lt;ListenerTemplate&lt;T&gt;&gt; listeners = new List&lt;ListenerTemplate&lt;T&gt;&gt;();
  
      public void Raise(T go) {
          for (int i = listeners.Count - 1; i &gt;= 0; i--) {
              listeners[i].OnEventRaised(go);
          }
      }
  
      public void RegisterListener(ListenerTemplate&lt;T&gt; listener) {
          listeners.Add(listener);
      }
  
      public void UnregisterListener(ListenerTemplate&lt;T&gt; listener) {
          listeners.Remove(listener);
      }
  }
  </code></pre>
  
  <p><strong>ListenerTemplate.cs</strong></p>
  
  <pre><code>using UnityEngine;
  using UnityEngine.Events;
  
  [System.Serializable]
  public class ResponseEvent&lt;T&gt; : UnityEvent&lt;T&gt; { }
  
  public class ListenerTemplate&lt;T&gt; : MonoBehaviour {
      //[SerializeField]
      public EventTemplate&lt;T&gt; gameEvent;
  
      //[SerializeField]
      public ResponseEvent&lt;T&gt; response;
  
      private void OnEnable() {
          gameEvent.RegisterListener(this);
      }
  
      private void OnDisable() {
          gameEvent.UnregisterListener(this);
      }
  
      public void OnEventRaised(T go) {
          response.Invoke(go);
      }
  }
  </code></pre>
  
  <p>Now, when I have both generic types, I created one Event and one Listener for <code>int</code> type.
  These are two files:</p>
  
  <p><strong>EventInt.cs</strong></p>
  
  <pre><code>using System.Collections.Generic;
  using UnityEngine;
  
  [CreateAssetMenu(fileName = "New Event Template", menuName = "Stage Management/Event Templates/Event Int")]
  public class EventInt : EventTemplate&lt;int&gt; {
  
  }
  </code></pre>
  
  <p>and <strong>ListenerInt.cs</strong></p>
  
  <pre><code>using UnityEngine;
  using UnityEngine.Events;
  
  [System.Serializable]
  public class ResponseInt : ResponseEvent&lt;int&gt; { }
  
  public class ListenerInt : ListenerTemplate&lt;int&gt; {
  }
  </code></pre>
  
  <p>then my expectation was, once I add <code>ListenerInt.cs</code> to specific game component via Editor, I will able to access <code>gameEvent</code> and <code>response</code> in the same fashion I can access them as if I define UnityEvent for int type.
  However, the reality is that I cannot see / access neither <code>gameEvent</code> nor <code>response</code> via the Editor.</p>