FM/Assets/Scripts/Runtime/UI/Logic/AgreementUI.cs

126 lines
3.9 KiB
C#

using System;
using Data;
using UnityEngine.UI;
using TMPro;
using UnityEngine;
namespace HK
{
public class AgreementUI : UIBase
{
[SerializeField] private UpMenuItem goUpMenu;
[SerializeField] private TMP_Text txtContent;
[SerializeField] private Toggle togIsAgree;
[SerializeField] private Button btnAgree;
[SerializeField] private Button btnDisagree;
[SerializeField] private ScrollRect scrTerms;
AgreementTermsData agreementTermsData;
public override void OnInit()
{
base.OnInit();
#region AutoGen_Init
goUpMenu = GetValue<UpMenuItem>("goUpMenu");
txtContent = GetValue<TMP_Text>("txtContent");
togIsAgree = GetValue<Toggle>("togIsAgree");
btnAgree = GetValue<Button>("btnAgree");
btnDisagree = GetValue<Button>("btnDisagree");
scrTerms = GetValue<ScrollRect>("scrTerms");
togIsAgree.onValueChanged.AddListener(OnValueChangedtogIsAgree);
btnAgree.onClick.AddListener(OnClickbtnAgree);
btnDisagree.onClick.AddListener(OnClickbtnDisagree);
scrTerms.onValueChanged.AddListener(OnValueChangedscrTerms);
#endregion
LanguageManager.Instance.LanguageChange += LanguageChange;
agreementTermsData = ExcelManager.AgreementTerms.GetData(ExcelConstData.AgreementTerms_1001);
LanguageChange(LanguageManager.Instance.type);
goUpMenu.OnClickReturn += OnClickbtnDisagree;
}
private void LanguageChange(LanguageManager.LanguageType type)
{
switch (type)
{
case LanguageManager.LanguageType.English:
txtContent.text = agreementTermsData.English;
break;
case LanguageManager.LanguageType.Chinese:
txtContent.text = agreementTermsData.SimplifiedChinese;
break;
default:
throw new ArgumentOutOfRangeException(nameof(type), type, null);
}
scrTerms.content.RebuildLayout();
}
public override void OnOpen()
{
base.OnOpen();
btnAgree.interactable = false;
btnDisagree.interactable = false;
togIsAgree.interactable = false;
togIsAgree.isOn = false;
scrTerms.content.RebuildLayout();
scrTerms.velocity=Vector2.one;
goUpMenu.OnShow();
}
#region AutoGen_Method
private void OnValueChangedtogIsAgree(bool b)
{
btnAgree.interactable = b;
}
private void OnClickbtnAgree()
{
UIManager.Instance.ShowUIOnly(nameof(ThemeUI));
}
private void OnClickbtnDisagree()
{
UIManager.Instance.BackLast();
}
private void OnValueChangedscrTerms(Vector2 v)
{
if (v.y <= 0 && !btnDisagree.interactable)
{
btnDisagree.interactable = true;
togIsAgree.interactable = true;
}
}
#endregion
public override void OnDispose()
{
base.OnDispose();
LanguageManager.Instance.LanguageChange -= LanguageChange;
goUpMenu.OnClickReturn -= OnClickbtnDisagree;
#region AutoGen_Dispose
togIsAgree.onValueChanged.RemoveListener(OnValueChangedtogIsAgree);
btnAgree.onClick.RemoveListener(OnClickbtnAgree);
btnDisagree.onClick.RemoveListener(OnClickbtnDisagree);
scrTerms.onValueChanged.RemoveListener(OnValueChangedscrTerms);
goUpMenu = null;
txtContent = null;
togIsAgree = null;
btnAgree = null;
btnDisagree = null;
scrTerms = null;
#endregion
}
}
}