Files
ChunilENG/Assets/Scripts/UI/Panel_FloorControl.cs

59 lines
1.7 KiB
C#
Raw Normal View History

2025-02-20 09:59:37 +09:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using WI;
using UnityEngine.UI;
using TMPro;
using System.Linq;
using System;
namespace CHN
{
public class Panel_FloorControl : PanelBase
{
public List<UI_FloorButton> floorButtons = new List<UI_FloorButton>();
public UI_FloorButton prefab_floorButton;
public Action<int> onValueChanged;
public UI_FloorButton currentFloorButton;
public void SettingButtons(int floorCount)
{
prefab_floorButton = Resources.Load<UI_FloorButton>("Prefabs/UI/PRF_UI_FloorButton");
for (int i = 0; i <= floorCount; i++)
{
var floorButton = Instantiate(prefab_floorButton, transform);
floorButton.SettingButton(i);
floorButton.onClickButton += OnClickButton;
floorButtons.Add(floorButton);
}
ChangeValueFromOutside(floorCount);
}
private void OnClickButton(UI_FloorButton currentButton)
{
SetCurrentFloorButton(currentButton);
OnValueChanged(currentFloorButton.value);
}
private void SetCurrentFloorButton(UI_FloorButton currentButton)
{
if (currentFloorButton != null)
{
currentFloorButton.ResetColor();
}
currentFloorButton = currentButton;
currentFloorButton.SetChangeColor();
}
private void OnValueChanged(int value)
{
onValueChanged?.Invoke(value);
}
public void ChangeValueFromOutside(int value)
{
SetCurrentFloorButton(floorButtons[value]);
onValueChanged?.Invoke(value);
}
}
}