64 lines
2.0 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|