private Material getMaterial(string slotname, int matno)
        {
            TBody            body   = maid.body0;
            List <TBodySkin> goSlot = body.goSlot;
            int index = (int)global::TBody.hashSlotName[slotname];
            global::TBodySkin tBodySkin = goSlot[index];
            GameObject        obj       = tBodySkin.obj;

            if (obj == null)
            {
                return(null);
            }
            List <Material> materialList = new List <Material>();

            Transform[] componentsInChildren = obj.transform.GetComponentsInChildren <Transform>(true);
            for (int i = 0; i < componentsInChildren.Length; i++)
            {
                Transform transform = componentsInChildren[i];
                Renderer  renderer  = transform.renderer;
                if (renderer != null && renderer.material != null && matno < renderer.materials.Length)
                {
                    return(renderer.materials[matno]);
                }
            }
            return(null);
        }
        /// <summary>
        /// スロット名とマテリアル番号を指定して、マテリアルオブジェクトを取得する
        /// </summary>
        ///
        /// <param name="slotName">スロット名(列挙型の名前)</param>
        /// <param name="matNo">マテリアル番号</param>
        /// <returns>マテリアル ただし、見つからない場合はnullを返す</returns>
        public Material GetMaterial(string slotName, int matNo)
        {
            global::TBodySkin slot = currentMaid.body0.GetSlot(slotName);

            if (slot.obj == null)
            {
                return(null);
            }

            var r = GetRenderer(slot.obj, matNo);

            return(r != null ? r.materials[matNo] : null);
        }