//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Thursday, June 06, 2019 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class VipPrivilegeInfoWin : Window { [SerializeField] ScrollRectGroup m_ScrollGroup; [SerializeField] RectTransform m_ContainerPrivilegeTitles; [SerializeField] RectTransform m_ContainerVip; [SerializeField] RectTransform m_ContainerPrivileges; [SerializeField] List m_VipLevels; [SerializeField] List m_VipPrivilegeTitles; [SerializeField] List m_VipPrivileges; [SerializeField] Button m_Close; VipModel model { get { return ModelCenter.Instance.GetModel(); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { m_Close.AddListener(CloseClick); } protected override void OnPreOpen() { } protected override void OnActived() { base.OnActived(); CreateVipElements((int)model.vipMaxLv + 1); var configs = VipPrivilegeConfig.GetValues(); CreatePrivilegeElements(configs.Count); m_ScrollGroup.Initialize(); Display(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnAfterClose() { } #endregion void Display() { var configs = VipPrivilegeInfoConfig.GetValues(); for (int i = 0; i < m_VipPrivilegeTitles.Count; i++) { m_VipPrivilegeTitles[i].gameObject.SetActive(i < configs.Count); if (i < configs.Count) { m_VipPrivilegeTitles[i].Display(configs[i].name, i % 2 == 1); } } for (int i = 0; i < m_VipPrivileges.Count; i++) { m_VipPrivileges[i].gameObject.SetActive(i < configs.Count); if (i < configs.Count) { m_VipPrivileges[i].Display(configs[i].id, i % 2 == 1); } } for (int i = 0; i < m_VipLevels.Count; i++) { m_VipLevels[i].gameObject.SetActive(i <= model.vipMaxLv); if (i <= model.vipMaxLv) { m_VipLevels[i].text = "VIP" + i; } } } void CreateVipElements(int count) { for (int i = 0; i < m_VipPrivileges.Count; i++) { m_VipPrivileges[i].CreateElements(count); } if (count > m_VipLevels.Count) { var delta = count - m_VipLevels.Count; for (int i = 0; i < delta; i++) { var go = GameObject.Instantiate(m_VipLevels[0]); go.transform.SetParent(m_ContainerVip); go.transform.localScale = Vector3.one; var instance = go.GetComponent(); m_VipLevels.Add(instance); } } } void CreatePrivilegeElements(int count) { if (count > m_VipPrivilegeTitles.Count) { var delta = count - m_VipPrivilegeTitles.Count; for (int i = 0; i < delta; i++) { var go = GameObject.Instantiate(m_VipPrivilegeTitles[0]); go.transform.SetParent(m_ContainerPrivilegeTitles); go.transform.localScale = Vector3.one; var instance = go.GetComponent(); m_VipPrivilegeTitles.Add(instance); } } if (count > m_VipPrivileges.Count) { var delta = count - m_VipPrivileges.Count; for (int i = 0; i < delta; i++) { var go = GameObject.Instantiate(m_VipPrivileges[0]); go.transform.SetParent(m_ContainerPrivileges); go.transform.localScale = Vector3.one; var instance = go.GetComponent(); m_VipPrivileges.Add(instance); } } } } }