public static List <T> CollectObjects <T>(this GameEntity entity) where T : ScriptComponentBehaviour
        {
            List <T> list = new List <T>();

            MBExtensions.CollectObjectsAux <T>(entity, list);
            return(list);
        }
        private static void CollectObjectsAux <T>(GameEntity entity, List <T> list) where T : ScriptComponentBehaviour
        {
            IEnumerable <T> scriptComponents = entity.GetScriptComponents <T>();

            list.AddRange(scriptComponents);
            foreach (GameEntity child in entity.GetChildren())
            {
                MBExtensions.CollectObjectsAux <T>(child, list);
            }
        }