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 floorButtons = new List(); public UI_FloorButton prefab_floorButton; public Action onValueChanged; public UI_FloorButton currentFloorButton; public override void AfterStart() { prefab_floorButton = Resources.Load("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.ResetColor(); } currentFloorButton = currentButton; currentFloorButton.SetChangeColor(); } 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); } } }