113 lines
4.4 KiB
C#
Raw Permalink Normal View History

2026-06-08 08:55:10 +08:00
using System.Collections;
using System.Collections.Generic;
using System.Threading.Tasks;
using Kill.Managers;
using Kill.Network;
using Kill.UI.Components;
using UnityEngine;
using UnityEngine.UI;
namespace Kill.UI.Pages
{
public class SelfPage : MonoBehaviour
{
public Button backButton;
public Button showQrCodeButton;
public Button showInfoButton;
public SelfInfoPage selfInfoPagePrefab;
public Button safetyTestButton;
public ChangeLanguagePage changeLanguagePagePrefab;
public Button languageSettingButton;
public Image avatarImage;
public Text nicknameText;
public Text emailText;
UserInfo userInfo;
public ShowImageText safeHighlightPagePrefab;
public ShowImageText statusPagePrefab;
async Task Start()
{
UIManager.Instance.RegisterBackAction(OnBack);
backButton.onClick.RemoveAllListeners();
backButton.onClick.AddListener(OnBack);
showQrCodeButton.onClick.RemoveAllListeners();
showQrCodeButton.onClick.AddListener(OnShowQrCode);
showInfoButton.onClick.RemoveAllListeners();
showInfoButton.onClick.AddListener(OnShowInfo);
safetyTestButton.onClick.RemoveAllListeners();
safetyTestButton.onClick.AddListener(OnSafetyTest);
languageSettingButton.onClick.RemoveAllListeners();
languageSettingButton.onClick.AddListener(OnChangeLanguage);
await RefreshAsync();
}
public void OnBack()
{
UIManager.Instance.OpenMainPage(UIManager.PageName.homePage);
}
public GameObject qrCodePanelPrefab;
public void OnShowQrCode()
{
GameObject qrCodePanel = Instantiate(qrCodePanelPrefab, transform);
qrCodePanel.GetComponent<SelfQrcodePage>().Init(userInfo);
}
public void OnShowInfo()
{
SelfInfoPage infoPage = Instantiate(selfInfoPagePrefab, transform);
infoPage.Init(userInfo);
}
public void OnSafetyTest()
{
UIManager.Instance.OpenPage(UIManager.PageName.safetylearningPage);
}
public void OnChangeLanguage()
{
ChangeLanguagePage languagePage = Instantiate(changeLanguagePagePrefab, transform);
}
public async Task RefreshAsync()
{
userInfo = DataManager.Instance.userInfo;
avatarImage.gameObject.SetActive(false);
nicknameText.text = userInfo.username;
emailText.text = userInfo.email;
if (string.IsNullOrEmpty(userInfo.avatar))
{
avatarImage.gameObject.SetActive(false);
avatarImage.transform.parent.GetComponent<Mask>().showMaskGraphic=true;
}
else
{
await NetworkCtrl.Instance.LoadImageToUIImageAsync(userInfo.avatar, avatarImage);
avatarImage.gameObject.SetActive(true);
avatarImage.transform.parent.GetComponent<Mask>().showMaskGraphic=false;
}
}
public void EnterSafePage()
{
ShowImageText safePage=Instantiate(safeHighlightPagePrefab,transform);
safePage.gameObject.SetActive(true);
safePage.Init(()=>{UIManager.Instance.RegisterBackAction(OnBack);});
}
public void EnterStatusPage()
{
ShowImageText statusPage=Instantiate(statusPagePrefab,transform);
statusPage.gameObject.SetActive(true);
statusPage.Init(()=>{UIManager.Instance.RegisterBackAction(OnBack);});
}
public FAQPage fAQPagePrefab;
public void EnterFaqPage()
{
FAQPage fAQPage=Instantiate(fAQPagePrefab,transform);
fAQPage.gameObject.SetActive(true);
fAQPage.Init(()=>{UIManager.Instance.RegisterBackAction(OnBack);});
}
public DeviceTeachingPage[] deviceTeachingPagePrefabs;
public void EnterDeviceTeachingPage()
{
int type=(int)LanguageManager.Instance.languageType;
DeviceTeachingPage deviceTeachingPage=Instantiate(deviceTeachingPagePrefabs[type],transform);
deviceTeachingPage.gameObject.SetActive(true);
deviceTeachingPage.Init(()=>{UIManager.Instance.RegisterBackAction(OnBack);});
}
}
}