SettingsScript.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. using System.Linq;
  6. using System;
  7. public class SettingsScript : MonoBehaviour
  8. {
  9. [SerializeField] GameObject LangaugeSelectBox;
  10. // Start is called before the first frame update
  11. private Dropdown languageSelector;
  12. void Start()
  13. {
  14. languageSelector = LangaugeSelectBox.GetComponent<Dropdown>();
  15. languageSelector.onValueChanged.AddListener(delegate { languageSelectionChange(languageSelector); });
  16. setLanguages();
  17. }
  18. private void languageSelectionChange(Dropdown selection) {
  19. PlayerPrefs.SetString("SelectedLanguage", selection.options[selection.value].text);
  20. }
  21. // Update is called once per frame
  22. void Update()
  23. {
  24. }
  25. void setLanguages() {
  26. languageSelector.options.Clear();
  27. languageSelector.AddOptions(LocalizationManager.Instance.languages.Select(l => l.languageString).ToList<string>());
  28. string currentLang = PlayerPrefs.GetString("SelectedLanguage");
  29. if (!String.IsNullOrEmpty(currentLang)) {
  30. languageSelector.SetValueWithoutNotify(languageSelector.options.IndexOf(languageSelector.options.Where(od => od.text.Equals(currentLang)).First()));
  31. }
  32. }
  33. }