Files
Main/Assets/GameAssets/Resources/GameUI/Common/UIComponentContainer/UIButtonContainer.cs
2025-01-25 04:38:09 +08:00

89 lines
2.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using UnityEngine;
namespace Thousandto.Plugins.Common
{
/// <summary>
/// 功能窗体容器
/// </summary>
public class UIButtonContainer : UIComponentContainer<UIButtonInfo, IButtonFunctionInfo>
{
//所在网格
private UIGrid _grid;
//刷新
public int Refresh(IButtonFunctionInfo[] infos, object param = null)
{
int showCount = 0;
EnQueueAll();
for (int i = 0; i < infos.Length; i++)
{
if (infos[i] != null)
{
if (infos[i].IsVisible)
{
showCount++;
ShowButton(infos[i], param);
}
else
{
HideButton(infos[i]);
}
}
}
Reposition();
return showCount;
}
//重新刷新位置
public void Reposition()
{
if (_grid != null)
{
_grid.repositionNow = true;
}
}
//获取网格
public UIGrid GetGrid()
{
return _grid;
}
//设置Grid
public void SetGrid(UIGrid grid)
{
_grid = grid;
}
//显示按钮
public void ShowButton(IButtonFunctionInfo info, object param = null)
{
UIButtonInfo btn = GetUsedUI(info);
if (btn == null)
{
btn = DeQueue(info);
if (btn != null)
{
btn.SetParam(param);
btn.SetActive(true);
}
}
else
{
btn.RefreshData();
btn.SetParam(param);
}
}
//隐藏按钮
public void HideButton(IButtonFunctionInfo info)
{
EnQueue(info);
}
}
}