FM/Assets/Scripts/FUJIFILM/UI/Logic/TermAndConditionsUI.cs

122 lines
3.5 KiB
C#

using System;
using Data;
using UnityEngine.UI;
using TMPro;
using UnityEngine;
using ZGame;
namespace HK.FUJIFILM
{
public class TermAndConditionsUI : UIBase
{
[SerializeField] private TMP_Text txtTitle;
[SerializeField] private TMP_Text txtContext_Chin;
[SerializeField] private ScrollRect scrTerm;
[SerializeField] private Toggle togAgree;
[SerializeField] private Button btnStart;
[SerializeField] private UpMenuItem goUpMenu;
public override void OnInit()
{
base.OnInit();
#region AutoGen_Init
txtTitle = GetValue<TMP_Text>("txtTitle");
txtContext_Chin = GetValue<TMP_Text>("txtContext_Chin");
togAgree = GetValue<Toggle>("togAgree");
scrTerm = GetValue<ScrollRect>("scrTerm");
btnStart = GetValue<Button>("btnStart");
goUpMenu = GetValue<UpMenuItem>("goUpMenu");
togAgree.onValueChanged.AddListener(OnValueChangedtogAgree);
btnStart.onClick.AddListener(OnClickbtnStart);
#endregion
goUpMenu.ReturnAction += ReturnCallback;
}
private void ReturnCallback()
{
}
AgreementTermsData termsData;
public override void OnOpen(UIBase lastUI)
{
base.OnOpen(lastUI);
btnStart.interactable = false;
togAgree.interactable = false;
togAgree.isOn = false;
termsData = ExcelManager.AgreementTerms.GetData(ExcelConstData.AgreementTerms_1001);
LanguageChange(LanguageManager.Instance.type);
scrTerm.normalizedPosition = Vector2.one;
scrTerm.onValueChanged.AddListener(ChangeSrcTerm);
LanguageManager.Instance.LanguageChange += LanguageChange;
}
public override void OnClose()
{
base.OnClose();
LanguageManager.Instance.LanguageChange -= LanguageChange;
}
void LanguageChange(LanguageManager.LanguageType type)
{
txtContext_Chin.text = type == LanguageManager.LanguageType.English
? termsData.English
: termsData.SimplifiedChinese;
scrTerm.content.RebuildLayout();
}
private void ChangeSrcTerm(Vector2 arg0)
{
if (arg0.y <= 0 && !togAgree.interactable)
{
togAgree.interactable = true;
}
}
private void OnDisable()
{
LanguageManager.Instance.LanguageChange -= LanguageChange;
}
#region AutoGen_Method
private void OnValueChangedtogAgree(bool b)
{
btnStart.interactable = b;
}
private void OnClickbtnStart()
{
OnPause();
UIManager.Instance.ShowUI(nameof(ProductDesginUI), this);
EventManager.Instance.FireNow(this, new ProductEventArgs(GlobalGameData.productScriptableObject));
}
#endregion
public override void OnDispose()
{
base.OnDispose();
goUpMenu.ReturnAction -= ReturnCallback;
#region AutoGen_Dispose
togAgree.onValueChanged.RemoveListener(OnValueChangedtogAgree);
btnStart.onClick.RemoveListener(OnClickbtnStart);
txtTitle = null;
txtContext_Chin = null;
togAgree = null;
btnStart = null;
goUpMenu = null;
#endregion
}
}
}