Files
SHI-YardView/Assets/Scripts/UI/Panel_OutfittingPlan.cs
2025-09-15 15:39:11 +09:00

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);
}
}