87 lines
2.8 KiB
C#
87 lines
2.8 KiB
C#
using System.Collections;
|
|
using BlueWater.Uis;
|
|
using BlueWater.Utility;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.Localization;
|
|
using UnityEngine.Localization.Settings;
|
|
using UnityEngine.ResourceManagement.AsyncOperations;
|
|
using UnityEngine.UI;
|
|
|
|
namespace BlueWater
|
|
{
|
|
public class TycoonTutorialPopupUi : TutorialPopupUi
|
|
{
|
|
[SerializeField]
|
|
private TMP_Text _titleText;
|
|
|
|
[SerializeField]
|
|
private TMP_Text _descriptionText;
|
|
|
|
[SerializeField]
|
|
private Image _descriptionImage;
|
|
|
|
[SerializeField]
|
|
private TMP_Text _pageText;
|
|
|
|
private TutorialInfo _tutorialInfo;
|
|
private TutorialPage _tutorialPage;
|
|
private Coroutine _changedLocaleInstance;
|
|
private int _pageIndex;
|
|
|
|
private void Start()
|
|
{
|
|
LocalizationSettings.SelectedLocaleChanged += OnChangedLocale;
|
|
}
|
|
|
|
private void OnDestroy()
|
|
{
|
|
LocalizationSettings.SelectedLocaleChanged -= OnChangedLocale;
|
|
}
|
|
|
|
private void OnChangedLocale(Locale locale)
|
|
{
|
|
if (!gameObject.activeInHierarchy) return;
|
|
|
|
Utils.StartUniqueCoroutine(this, ref _changedLocaleInstance, ChangeLocaleCoroutine(locale));
|
|
StartCoroutine(ChangeLocaleCoroutine(locale));
|
|
}
|
|
|
|
private IEnumerator ChangeLocaleCoroutine(Locale locale)
|
|
{
|
|
var loadingOperation = Utils.GetTableAsync();
|
|
yield return loadingOperation;
|
|
|
|
if (loadingOperation.Status == AsyncOperationStatus.Succeeded)
|
|
{
|
|
_titleText.text = Utils.GetLocalizedString(_tutorialInfo.TitleTextIdx);
|
|
_descriptionText.text = Utils.GetLocalizedString(_tutorialPage.DescriptionIdx);
|
|
}
|
|
}
|
|
|
|
public void Initialize(TutorialInfo tutorialInfo, int pageindex)
|
|
{
|
|
gameObject.SetActive(false);
|
|
|
|
_tutorialInfo = tutorialInfo;
|
|
_pageIndex = pageindex;
|
|
_tutorialPage = _tutorialInfo.TutorialPages[_pageIndex];
|
|
|
|
gameObject.name = $"{_tutorialInfo.TutorialName}{_pageIndex + 1}";
|
|
|
|
if (_tutorialPage.TutorialPageType is TutorialPageType.First or TutorialPageType.Sole)
|
|
{
|
|
_titleText.text = Utils.GetLocalizedString(_tutorialInfo.TitleTextIdx);
|
|
_titleText.enabled = true;
|
|
}
|
|
else
|
|
{
|
|
_titleText.enabled = false;
|
|
}
|
|
_descriptionText.text = Utils.GetLocalizedString(_tutorialPage.DescriptionIdx);
|
|
_descriptionImage.sprite = _tutorialPage.Sprite;
|
|
_pageText.text = $"{_tutorialPage.PageIndex}/{_tutorialInfo.GetPages()}";
|
|
}
|
|
}
|
|
}
|