Example #1
0
        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);
        }
Example #2
0
        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);
                }
            }
        }