コード例 #1
0
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if (value == null)
            {
                return(null);
            }

            Dictionary <string, List <GameObject> > compToObjsDict = new Dictionary <string, List <GameObject> >();

            //build table
            var list = value as ObservableCollection <GameObject>;

            foreach (var gobj in list)
            {
                foreach (var comp in gobj.mComponents)
                {
                    string comp_name = comp.mytoplevelname();
                    if (!compToObjsDict.ContainsKey(comp_name))
                    {
                        compToObjsDict.Add(comp_name, new List <GameObject>());
                    }
                    compToObjsDict[comp_name].Add(gobj);
                }
            }

            //generate packs from the table
            var pack_list = new List <MultiComponentPack>();

            foreach (var input in compToObjsDict)
            {
                MultiComponentPack pack = new MultiComponentPack();
                pack.component_type = input.Key;
                pack.gameObjects.AddRange(input.Value);
                foreach (var gobj in input.Value)
                {
                    pack.merged_components.Add(gobj.GetComponentByName(input.Key));
                }
                pack_list.Add(pack);
            }

            return(pack_list);
        }
コード例 #2
0
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if (value == null)
                return null;

            Dictionary<string, List<GameObject>> compToObjsDict = new Dictionary<string,List<GameObject>>();

            //build table
            var list = value as ObservableCollection<GameObject>;
            foreach (var gobj in list)
            {
                foreach (var comp in gobj.mComponents)
                {
                    string comp_name = comp.mytoplevelname();
                    if (!compToObjsDict.ContainsKey(comp_name))
                        compToObjsDict.Add(comp_name, new List<GameObject>());
                    compToObjsDict[comp_name].Add(gobj);
                }
            }

            //generate packs from the table
            var pack_list = new List<MultiComponentPack>();
            foreach (var input in compToObjsDict)
            {
                MultiComponentPack pack = new MultiComponentPack();
                pack.component_type = input.Key;
                pack.gameObjects.AddRange(input.Value);
                foreach (var gobj in input.Value)
                    pack.merged_components.Add(gobj.GetComponentByName(input.Key));
                pack_list.Add(pack);
            }

            return pack_list;
        }