Files
Studio/Assets/Scripts/Studio/UI/Panel/Panel_SceneTab.cs

64 lines
2.0 KiB
C#

using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using XRLib.UI;
namespace Studio
{
public class Panel_SceneTab : PanelBase
{
private Toggle Toggle_SceneStartSetting;
private Button Button_AddSceneTab;
private RectTransform Content;
private ToggleGroup toggleGroup;
private UI_SceneTabButton prf_SceneTabButton;
private List<UI_SceneTabButton> sceneTabButtons = new List<UI_SceneTabButton>();
private int index;
public Action<bool> onSceneSettingTab;
public Action<bool> onSceneTab;
public void Init()
{
prf_SceneTabButton = Resources.Load<UI_SceneTabButton>("Prefabs/UI/PRF_SceneTabButton");
toggleGroup = Content.GetComponent<ToggleGroup>();
Toggle_SceneStartSetting.group = toggleGroup;
Toggle_SceneStartSetting.onValueChanged.AddListener(OnSceneStartSettingValueChanged);
Button_AddSceneTab.onClick.AddListener(OnClickAddSceneTabButton);
foreach (var sceneTabButton in sceneTabButtons)
{
Destroy(sceneTabButton.gameObject);
}
sceneTabButtons.Clear();
index = 0;
Toggle_SceneStartSetting.isOn = true;
OnClickAddSceneTabButton();
}
private void OnSceneStartSettingValueChanged(bool isOn)
{
Debug.Log(isOn);
onSceneSettingTab?.Invoke(isOn);
}
private void OnClickAddSceneTabButton()
{
var item = Instantiate(prf_SceneTabButton, Content);
var itemName = "Scene_" + index;
item.onClickSceneTab += OnClcikSceneTab;
item.SetSceneTabButton(toggleGroup, itemName);
sceneTabButtons.Add(item);
index++;
Button_AddSceneTab.transform.SetAsLastSibling();
}
private void OnClcikSceneTab(bool isOn)
{
onSceneTab?.Invoke(isOn);
}
}
}