80 lines
2.2 KiB
C#
80 lines
2.2 KiB
C#
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, IPopupPanel
|
|
{
|
|
public List<UI_FloorButton> floorButtons = new List<UI_FloorButton>();
|
|
public UI_FloorButton prefab_floorButton;
|
|
public Action<int> onValueChanged;
|
|
public UI_FloorButton currentFloorButton;
|
|
|
|
public override void AfterStart()
|
|
{
|
|
prefab_floorButton = Resources.Load<UI_FloorButton>("Prefabs/UI/PRF_UI_FloorButton");
|
|
SettingButtons(5);
|
|
SetActive(false);
|
|
}
|
|
public void SettingButtons(int floorCount)
|
|
{
|
|
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.Deselect();
|
|
}
|
|
currentFloorButton = currentButton;
|
|
currentFloorButton.Select();
|
|
}
|
|
private void OnValueChanged(int value)
|
|
{
|
|
onValueChanged?.Invoke(value);
|
|
}
|
|
public void ChangeValueFromOutside(int value)
|
|
{
|
|
SetCurrentFloorButton(floorButtons[value]);
|
|
onValueChanged?.Invoke(value);
|
|
}
|
|
public void SetActive()
|
|
{
|
|
var isActive = gameObject.activeSelf;
|
|
var active = isActive ? false : true;
|
|
|
|
gameObject.SetActive(active);
|
|
}
|
|
|
|
public void Open()
|
|
{
|
|
SetActive(true);
|
|
}
|
|
|
|
public void Close()
|
|
{
|
|
SetActive(false);
|
|
}
|
|
}
|
|
}
|
|
|