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;
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 4
0
 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);
 }