protected override HashSet <string> ApplyStrategyNode(string entryPath, Object asset, StrategyNode node)
        {
            GameObject         go        = asset as GameObject;
            HashSet <string>   result    = new HashSet <string>();
            ComponentProcessor processor = GetComponentProcessor(node.processor);
            HashSet <string>   sub       = processor.Process(entryPath, go, node);

            result.UnionWith(sub);
            int count = go.transform.childCount;

            for (int i = 0; i < count; i++)
            {
                GameObject child = go.transform.GetChild(i).gameObject;
                result.UnionWith(ApplyStrategyNode(entryPath, child, node));
            }
            return(result);
        }
 private void AddComponentProcessor(ComponentProcessor processor)
 {
     _componentProcessorDict.Add(processor.Name, processor);
 }