Пишу С# скрипты для Unity. В главном скрипте выбирается язык:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LocalisationSystem
{
public enum Language
{
English,
Ukrainian,
Russian,
}
public static Language language = Language.English;
private static Dictionary<string, string> localisedEN;
private static Dictionary<string, string> localisedUA;
private static Dictionary<string, string> localisedRU;
public static bool isInit;
public static void Init()
{
CSVLoader csvLoader = new CSVLoader();
csvLoader.LoadCSV();
localisedEN = csvLoader.GetDictionaryValues("en");
localisedUA = csvLoader.GetDictionaryValues("ua");
localisedRU = csvLoader.GetDictionaryValues("ru");
isInit = true;
}
public static string GetLocalisedValue(string key)
{
if(!isInit) { Init(); }
string value = key;
switch(language)
{
case Language.English:
localisedEN.TryGetValue(key, out value);
break;
case Language.Ukrainian:
localisedUA.TryGetValue(key, out value);
break;
case Language.Russian:
localisedRU.TryGetValue(key, out value);
break;
}
return value;
}
}
Главная строка которая задает язык
public static Language language = Language.English;
Eсли изменить ее на
public static Language language = Language.Russian;
то весь текст переведется на русский
У меня проблема с тем как поставить изменение текста при нажатии на кнопку, пробовал так:
public void ClickButtonRussian()
{
Language language = Language.Russian;
}
И вешал эту команду на кнопку, но при нажатии ничего не переводится