Framwork/Assets/Scripts/Base/Language/LanguageItem.cs

72 lines
1.9 KiB
C#
Raw Normal View History

2025-05-23 16:24:00 +08:00
using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class LanguageItem : MonoBehaviour
{
public string chin;
public string english;
public TMP_FontAsset ChinFontAsset;
public TMP_FontAsset EnglishFontAsset;
public TMP_Text Text;
public Image ChinImage;
public Image EnglishImage;
private void Awake()
{
Text = GetComponentInParent<TMP_Text>();
}
private void Start()
{
LanguageManager.Instance.LanguageChange += LanguageChange;
if (!LanguageManager.Instance.IsSimplified)
chin = LanguageManager.Instance.S2T(chin);
else
chin = LanguageManager.Instance.T2S(chin);
LanguageChange(LanguageManager.LanguageType.English);
}
private void LanguageChange(LanguageManager.LanguageType type)
{
switch (type)
{
case LanguageManager.LanguageType.English:
if (ChinImage != null && EnglishImage != null)
{
ChinImage.gameObject.SetActive(false);
EnglishImage.gameObject.SetActive(true);
}
if (Text != null)
{
Text.text = english;
Text.font = EnglishFontAsset;
}
break;
case LanguageManager.LanguageType.Chinese:
if (ChinImage != null && EnglishImage != null)
{
ChinImage.gameObject.SetActive(true);
EnglishImage.gameObject.SetActive(false);
}
if (Text != null)
{
Text.text = chin;
Text.font = ChinFontAsset;
}
break;
default:
throw new ArgumentOutOfRangeException(nameof(type), type, null);
}
}
}