void InitConfig() { Debuger.LogWarning("SetMesh..."); // shape RoleShapeConfig.TryGet(m_shapeConfigName, out m_shapeConfig); // skin m_skinPartConfig = RoleSkinConfig.instance.Get(m_skinConfigName); // default m_disguisePartConfig = RoleDisguiseConfig.Get(m_career, m_sex, m_faceStyle); m_disguiseHandle.InitConfig(m_modelName, m_disguisePartConfig, m_skinPartConfig, m_shapeConfig); m_skinMerge = m_disguiseHandle.m_skinHandle; m_shapeMgr = m_disguiseHandle.m_shapeHandle; // UI m_right.SetCount((int)enAvatar.max); m_right.AddSel(OnSelPage); for (int i = 0; i < (int)enAvatar.max; ++i) { m_right.Get <UIAvatarPageItem>(i).text.text = Avatar_Type[i]; } // default select m_right.SetSel((int)enAvatar.normal); m_btnReset.onClick.RemoveAllListeners(); m_btnReset.onClick.AddListener(OnReset); }
public void Set(int idx, RoleDisguiseHandle handle) { RoleDisguiseCareer config = handle.GetOverallConfig(); m_curTab = idx; int[] tabsKeys = s_tabKeys[idx]; subTabsLen = tabsKeys.Length; m_subParts.SetCount(subTabsLen); for (int i = 0; i < subTabsLen; ++i) { int itemIdx = i; var type = tabsKeys[i]; var item = m_subParts.Get <UIAvatarSkinMergeItem>(i); RoleDisguiseType partData = config.GetType(type); if (partData == null || partData.items == null || partData.items.Count == 0) { continue; } //标题,选中则展开内容 if (subTabsLen == 1) { item.btnTitle.gameObject.SetActive(false); } else { item.btnTitle.gameObject.SetActive(true); item.btnTitle.onClick.RemoveAllListeners(); item.btnTitle.onClick.AddListener(() => OnSel(itemIdx)); item.title.text = partData.name; } //内容,选中才展开 item.content.SetActive(i == 0); //图标,多个才支持可以选 if (type == 1 || type == 4 || type == 5) { item.styles.gameObject.SetActive(false); item.icons.gameObject.SetActive(true); item.icons.SetCount(partData.items.Count); for (int j = 0; j < partData.items.Count; ++j) { var iconIdx = j; var tex = partData.items[j]; // 设置图片 var btn = item.icons.Get <Button>(j); var icon = btn.transform.Find("icon").GetComponent <Text>(); icon.text = tex.iconName; btn.onClick.RemoveAllListeners(); btn.onClick.AddListener(() => { handle.SetStyle(type, iconIdx); }); } } else { // 颜色样式 item.styles.gameObject.SetActive(true); item.icons.gameObject.SetActive(false); item.styles.SetCount(partData.items.Count); for (int j = 0; j < partData.items.Count; ++j) { var iconIdx = j; var style = partData.items[j]; var btn = item.styles.Get <Button>(j); var icon = btn.GetComponent <Image>(); icon.color = style.color.RBGFloatColor; btn.onClick.RemoveAllListeners(); btn.onClick.AddListener(() => { handle.SetStyle(type, iconIdx); OnSelectColorType(handle, itemIdx, type); }); } //色相、饱和度、明度 var slider = item.hh; slider.gameObject.SetActive(false); slider = item.ss; slider.gameObject.SetActive(false); slider = item.vv; slider.gameObject.SetActive(false); } } }