61 lines
2.0 KiB
C#
61 lines
2.0 KiB
C#
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class Panel_OutfittingPlan : BaseDetailMenu
|
|
{
|
|
private Dictionary<Button, RectTransform> tabMenus = new();
|
|
public Button currentTabButton;
|
|
|
|
public override void Initialized()
|
|
{
|
|
base.Initialized();
|
|
|
|
var rectDictionary = transform.FindComponentDictionary<RectTransform>();
|
|
var buttonsArea = rectDictionary.GetOrNull("ButtonArea");
|
|
var buttonDictionary = buttonsArea.transform.FindComponentDictionary<Button>();
|
|
|
|
var dataContent = rectDictionary.GetOrNull("DataContent");
|
|
var dataImages = dataContent.GetComponentsInChildren<RectTransform>(true);
|
|
|
|
foreach (var tabButton in buttonDictionary.Values)
|
|
{
|
|
SettingTabMenu(tabButton, dataImages);
|
|
tabButton.onClick.AddListener(() => SetTabMenu(tabButton));
|
|
}
|
|
|
|
var takeOverButton = buttonDictionary.GetOrNull("Button_TakeOver");
|
|
SetTabMenu(takeOverButton);
|
|
}
|
|
private void SettingTabMenu(Button tabButton, RectTransform[] dataContents)
|
|
{
|
|
foreach (var dataContent in dataContents)
|
|
{
|
|
var tabMenuName = tabButton.name.Replace("Button_", "");
|
|
|
|
if (dataContent.name.Contains(tabMenuName))
|
|
{
|
|
tabMenus.Add(tabButton, dataContent);
|
|
}
|
|
}
|
|
}
|
|
public void SetTabMenu(Button tabButton)
|
|
{
|
|
ChangedTab(tabButton);
|
|
}
|
|
private void ChangedTab(Button tabButton)
|
|
{
|
|
if (currentTabButton != null && currentTabButton != tabButton)
|
|
{
|
|
var preSelected = currentTabButton.transform.GetChild(1);
|
|
preSelected.gameObject.SetActive(false);
|
|
tabMenus[currentTabButton].gameObject.SetActive(false);
|
|
}
|
|
currentTabButton = tabButton;
|
|
|
|
var selected = currentTabButton.transform.GetChild(1);
|
|
selected.gameObject.SetActive(true);
|
|
tabMenus[currentTabButton].gameObject.SetActive(true);
|
|
}
|
|
}
|