123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- using UnityEngine;
- using UnityEngine.UI;
- using QFramework;
- using System.Collections.Generic;
- namespace QFramework
- {
- public class ToolDisplayFormData : UIPanelData
- {
- public List<ToolConfig> m_ToolConfigs = new List<ToolConfig>();
- }
- public partial class ToolDisplayForm : UIPanel
- {
- /// <summary>
- /// 包含所有生成的工具元素
- /// </summary>
- List<ToolItemElement> m_ToolItemElements = new List<ToolItemElement>();
- protected override void ProcessMsg(int eventId, QMsg msg)
- {
- throw new System.NotImplementedException();
- }
- protected override void OnInit(IUIData uiData = null)
- {
- mData = uiData as ToolDisplayFormData ?? new ToolDisplayFormData();
- }
- protected override void OnOpen(IUIData uiData = null)
- {
- mData = uiData as ToolDisplayFormData ?? new ToolDisplayFormData();
- HideAllToolItemElements();
- if (mData.m_ToolConfigs == null || mData.m_ToolConfigs.Count == 0)
- {
- ToolDisplayList.gameObject.SetActive(false);
- Bottom.gameObject.SetActive(false);
- return;
- }else
- {
- ToolDisplayList.gameObject.SetActive(true);
- Bottom.gameObject.SetActive(true);
- }
-
- GenerateToolDisplay(mData.m_ToolConfigs);
- }
- protected override void OnShow()
- {
- }
- protected override void OnHide()
- {
- }
- protected override void OnClose()
- {
- }
- private void GenerateToolDisplay(List<ToolConfig> toolConfigs)
- {
- HideAllToolItemElements();
- foreach (ToolConfig toolConfig in toolConfigs)
- {
- ToolItemElement toolItemElement = GetToolItemElement();
- toolItemElement.InitData(toolConfig);
- toolItemElement.gameObject.SetActive(true);
- }
- ToolConent.gameObject.SetActive(GetToolItemElementActiveCount() > 0);
- Mask.gameObject.SetActive(GetToolItemElementActiveCount() >= 7);
- }
- /// <summary>
- /// 获取一个可用的ToolItemElement
- /// </summary>
- /// <returns></returns>
- private ToolItemElement GetToolItemElement()
- {
- ToolItemElement toolItemElement = null;
- toolItemElement = m_ToolItemElements.Find(t => t.gameObject.activeSelf == false);
- if (toolItemElement == null)
- {
- GameObject toolElement = Instantiate<GameObject>(ToolItemElement.gameObject, Conent.transform);
- toolItemElement = toolElement.GetComponent<ToolItemElement>();
- m_ToolItemElements.Add(toolItemElement);
- }
- return toolItemElement;
- }
- private void HideAllToolItemElements()
- {
- foreach (var item in m_ToolItemElements)
- {
- item.gameObject.SetActive(false);
- }
- ToolConent.gameObject.SetActive(false);
- }
- public int GetToolItemElementActiveCount()
- {
- return m_ToolItemElements.FindAll(t => t.gameObject.activeSelf).Count;
- }
- }
- }
|