100 lines
3.0 KiB
C#
100 lines
3.0 KiB
C#
![]() |
using System.Collections.Generic;
|
||
|
using BlueWater;
|
||
|
using Sirenix.OdinInspector;
|
||
|
using UnityEngine;
|
||
|
|
||
|
public class TutorialLink
|
||
|
{
|
||
|
public TutorialPageToggle TutorialPageToggle { get; private set; }
|
||
|
public List<TycoonTutorialPopupUi> TycoonTutorialPopupUis { get; private set; }
|
||
|
|
||
|
public TutorialLink(TutorialPageToggle tutorialPageToggle, List<TycoonTutorialPopupUi> tycoonTutorialPopupUis)
|
||
|
{
|
||
|
TutorialPageToggle = tutorialPageToggle;
|
||
|
TycoonTutorialPopupUis = tycoonTutorialPopupUis;
|
||
|
|
||
|
TutorialPageToggle.OnToggleEvent += OnToggle;
|
||
|
}
|
||
|
|
||
|
public void OnToggle(bool isOn)
|
||
|
{
|
||
|
if (isOn)
|
||
|
{
|
||
|
TycoonTutorialPopupUis[0].Open();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
namespace BlueWater
|
||
|
{
|
||
|
public class TycoonTutorial : MonoBehaviour
|
||
|
{
|
||
|
[SerializeField, Required]
|
||
|
private GameObject _tutorialPanel;
|
||
|
|
||
|
[SerializeField]
|
||
|
private Transform _buttonContents;
|
||
|
|
||
|
[SerializeField]
|
||
|
private Transform _tutorialPopupUiContents;
|
||
|
|
||
|
[Title("프리팹")]
|
||
|
[SerializeField]
|
||
|
private TutorialPageToggle _tutorialPageToggle;
|
||
|
|
||
|
[SerializeField]
|
||
|
private TycoonTutorialPopupUi _tutorialPopupUi;
|
||
|
|
||
|
[Title("So")]
|
||
|
[SerializeField, Required]
|
||
|
private TutorialSo _tutorialSo;
|
||
|
|
||
|
private Dictionary<string, TutorialLink> _tutorialLinks;
|
||
|
|
||
|
private void Start()
|
||
|
{
|
||
|
HideUi();
|
||
|
|
||
|
foreach (Transform element in _buttonContents)
|
||
|
{
|
||
|
Destroy(element.gameObject);
|
||
|
}
|
||
|
|
||
|
foreach (Transform element in _tutorialPopupUiContents)
|
||
|
{
|
||
|
Destroy(element.gameObject);
|
||
|
}
|
||
|
|
||
|
_tutorialLinks = new Dictionary<string, TutorialLink>(_tutorialSo.GetDataCount());
|
||
|
foreach (TutorialInfo tutorialInfo in _tutorialSo.GetData().Values)
|
||
|
{
|
||
|
TutorialPageToggle tutorialPageToggle = Instantiate(this._tutorialPageToggle, _buttonContents);
|
||
|
List<TycoonTutorialPopupUi> tycoonTutorialPopupUis = new List<TycoonTutorialPopupUi>();
|
||
|
tutorialPageToggle.Initialize(tutorialInfo);
|
||
|
|
||
|
for (int i = 0; i < tutorialInfo.TutorialPages.Count; i++)
|
||
|
{
|
||
|
TycoonTutorialPopupUi tycoonTutorialPopupUi = Instantiate(_tutorialPopupUi, _tutorialPopupUiContents);
|
||
|
tycoonTutorialPopupUis.Add(tycoonTutorialPopupUi);
|
||
|
}
|
||
|
|
||
|
_tutorialLinks.Add(tutorialInfo.TutorialName, new TutorialLink(tutorialPageToggle, tycoonTutorialPopupUis));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void ShowUi()
|
||
|
{
|
||
|
if (_tutorialLinks.TryGetValue("TutorialA", out TutorialLink tutorialLink))
|
||
|
{
|
||
|
tutorialLink.TutorialPageToggle.OnToggle(true);
|
||
|
}
|
||
|
_tutorialPanel.SetActive(true);
|
||
|
}
|
||
|
|
||
|
public void HideUi()
|
||
|
{
|
||
|
_tutorialPanel.SetActive(false);
|
||
|
}
|
||
|
}
|
||
|
}
|