ProjectDDD/Assets/_DDD/_Scripts/GameUi/TabUiController.cs
2025-07-24 17:41:20 +09:00

46 lines
1.2 KiB
C#

using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using UnityEngine;
namespace DDD
{
public class TabUiController : MonoBehaviour
{
private List<TabUi> _tabUis;
private TaskCompletionSource<bool> _isInitialized = new();
private void Awake()
{
var tabUiChildren = GetComponentsInChildren<TabUi>();
_tabUis = new List<TabUi>(tabUiChildren);
foreach (var tabUi in _tabUis)
{
tabUi.Initialize();
}
_isInitialized.SetResult(true);
}
public async void SelectedTab(TabUi selectedTabUi)
{
await _isInitialized.Task;
foreach (var tabUi in _tabUis)
{
bool shouldBeActive = tabUi == selectedTabUi;
if (tabUi.IsOn != shouldBeActive)
{
tabUi.TabContentsSetActive(shouldBeActive);
}
}
}
public void ActivateFirstTab()
{
if (_tabUis == null || _tabUis.Count == 0) return;
SelectedTab(_tabUis[0]);
}
}
}