public void AddListener(string type, UnityAction <Message> listener) { UnityMessage message; if (m_events.TryGetValue(type, out message)) { message.AddListener(listener); } else { message = new UnityMessage(); message.AddListener(listener); m_events.Add(type, message); } }