コード例 #1
0
        public bool IsSameItem(MergeItem item)
        {
            bool isSame = false;

            if (this.Key.Equals(item.Key))
            {
                isSame = true;
            }
            return(isSame);
        }
コード例 #2
0
        static void traverse(Transform parent)
        {
            int count = parent.childCount;

            if (count <= 0)
            {
                return;
            }
            for (int i = 0; i < count; i++)
            {
                Transform child = parent.GetChild(i);
                Debug.Log(child.gameObject.name);
                MeshFilter msr = child.gameObject.GetComponent <MeshFilter>();
                if (msr != null)
                {
                    Material[] mas = msr.gameObject.GetComponent <MeshRenderer>().sharedMaterials;
                    for (int j = 0; j < mas.Length; j++)
                    {
                        Material m = mas[j];
                        if (!dictItems.ContainsKey(m.name))
                        {
                            MergeItem item = new MergeItem(m.name, m);
                            item.ListMeshFilter.Add(msr);
                            item.ListSubIndex.Add(j);
                            dictItems.Add(m.name, item);
                        }
                        else
                        {
                            MergeItem item = dictItems[m.name];
                            item.ListMeshFilter.Add(msr);
                            item.ListSubIndex.Add(j);
                        }
                    }
                }
                traverse(child);
            }
        }