Делаю средний проект. Замаячила на горизонте необходимость перевести его на другой язык. Программируя на Android. Знаю что очень удобно хранить все строковые переменные в одном файле. В Android это xml. Как это правильно организовать в Unity?
Я могу сказать, как мы с своих играх делаем.
Dictionary<string, string> на клиенте.В Unity3d в редакторе перед билдом скрипт стучится к нашему серваку с этими json'ами и качает их в папку Resources. В итоге, все локальки попадают в билд.
После закачки в папку с ресурсами импортируем
UnityEditor.AssetDatabase.ImportAsset(path, UnityEditor.ImportAssetOptions.ForceUpdate);
У нас для игр нужен интернет, поэтому у ещё при запуске игры происходит сверка версий локалек локальных с версиями на серваке. Если они обновились, то качаем новые.
В самом unity локальки десериализуются в Dictionary<string, string>, где просто брать локальки по ключу. Читаем из ресурсов и десериализуем:
var txt = Resources.Load(path) as TextAsset;
var words = DeserializeObject<Dictionary<string, string>>(asset)
Грузится локалька в зависимости от языка системы SystemLanguage (по-умолчанию EN).
Сборка персонального компьютера от Artline: умный выбор для современных пользователей