MultiLanguageConfig.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. 
  2. using System;
  3. using System.Collections.Generic;
  4. using UnityEngine;
  5. [CreateAssetMenu(fileName = "localLanguage", menuName = "ScriptableObjects/LocalLanguage", order = 1)]
  6. public class MultiLanguageConfig : ScriptableObject
  7. {
  8. public List<LanguageData> languageInfos = new List<LanguageData>();
  9. private Dictionary<string, LanguageData> _languageDataDic;//
  10. public Dictionary<string, LanguageData> languageDataDic
  11. {
  12. get
  13. {
  14. if (_languageDataDic == null || _languageDataDic.Count <= 0)
  15. {
  16. InitLanguageDataDic();
  17. }
  18. return _languageDataDic;
  19. }
  20. }
  21. private void InitLanguageDataDic()
  22. {
  23. _languageDataDic = new Dictionary<string, LanguageData>();
  24. for (int i = 0; i < languageInfos.Count; i++)
  25. {
  26. _languageDataDic.Add(languageInfos[i].name, languageInfos[i]);
  27. }
  28. }
  29. public string GetDataByName(string name, LanguageType languageType)
  30. {
  31. if (languageDataDic.ContainsKey(name))
  32. {
  33. if (languageDataDic[name].content.Count > (int)languageType)
  34. {
  35. return languageDataDic[name].content[(int)languageType].content;
  36. }
  37. }
  38. return null;
  39. }
  40. }