public List<ScriptDesc> Run() { //MonoBehaviour[] components = GameObject.GetComponents<MonoBehaviour>(); foreach (Type type in ComponentTypes) { if (type.IsSubclassOf(typeof(ComponentAdapter))) continue; // ignore component descriptors //Debug.Log(" -> " + type); var componentName = type.Name; ScriptDesc scriptDesc = new ScriptDesc(type.Name); var methods = Reflection.EditorReflector.GetMethodsBySignature( type, typeof(void), typeof(Event) // NOTE: This is eDriven.Core.Events.Event or else it won't work!!!!! ); //Debug.Log(" methods -> " + methods.Count); methods.ForEach(delegate(MethodInfo methodInfo) { scriptDesc.Add(new EventHandlerDesc(methodInfo.Name, methodInfo.GetType()) { ScriptName = componentName }); }); scriptDesc.EventHandlers.Sort(EventHandlerComparison); _scripts.Add(scriptDesc); } //_scripts.Sort(EventHandlerComparison); return _scripts; }
internal void Add(EventHandlerDesc desc) { var script = Scripts.Find(delegate(ScriptDesc groupDesc) { return(groupDesc.Name == desc.ScriptName); }); if (null == script) { script = new ScriptDesc(desc.ScriptName); Scripts.Add(script); } script.Add(desc); }
public List <ScriptDesc> Run() { //MonoBehaviour[] components = GameObject.GetComponents<MonoBehaviour>(); foreach (Type type in ComponentTypes) { if (type.IsSubclassOf(typeof(ComponentAdapter))) { continue; // ignore component descriptors } //Debug.Log(" -> " + type); var componentName = type.Name; ScriptDesc scriptDesc = new ScriptDesc(type.Name); var methods = Reflection.EditorReflector.GetMethodsBySignature( type, typeof(void), typeof(Event) // NOTE: This is eDriven.Core.Events.Event or else it won't work!!!!! ); //Debug.Log(" methods -> " + methods.Count); methods.ForEach(delegate(MethodInfo methodInfo) { scriptDesc.Add(new EventHandlerDesc(methodInfo.Name, methodInfo.GetType()) { ScriptName = componentName }); }); scriptDesc.EventHandlers.Sort(EventHandlerComparison); _scripts.Add(scriptDesc); } //_scripts.Sort(EventHandlerComparison); return(_scripts); }
internal void Add(EventHandlerDesc desc) { var script = Scripts.Find(delegate(ScriptDesc groupDesc) { return groupDesc.Name == desc.ScriptName; }); if (null == script) { script = new ScriptDesc(desc.ScriptName); Scripts.Add(script); } script.Add(desc); }