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

122 lines
3.5 KiB
C#
Raw Normal View History

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