Оптимизированная локализация игры на Unity

Здравствуйте! Разрабатываем игрушку на Unity (пошаговая стратегия), используем как статические объекты (которые всегда находятся на сцене), так и создание объектов из префабов. Встал вопрос локализации.

На данный момент система работает следующий образом:

1) Все текстовые значения хранятся в 4 .csv файлах под разные сцены, значения записаны построчно

Оптимизированная локализация игры на Unity Программирование, Разработка, Unity, Csharp, Локализация

2) Все статические объекты занесены в массив скрипта, контроллер со скриптом есть на каждой сцене

3) При загрузке сцены всем статическим объектам через цикл присваиваются соответствующие значения из текстового файла. Через ReadAllLines в вспомогательный массив заносятся все значения из текстового файла, которые нам нужны и присваиваются значениям текстов.

4) Для текстов, создаваемых кодом, мы используем отдельный метод, который принимает один аргумент в виде числа и через цикл прокручивает текстовый файл до определённой строки, возвращая (return) значение этой самой строки. Во всех скриптах мы просто обращаемся к этому методу и вставляем его с нужным аргументом (номером строки, на которой находится нужное нам значение).

Возникла следующая проблема: При добавлении в игру новых юнитов, зданий, способностей и т д, нам придётся записывать их в конце текстового файла, что рушит всю структуру и в дальнейшем найти нужный параметр будет непросто.

Предлагайте свои варианты переделки локализации/ структуры хранения текстов, главное - оптимизированные варианты.

Unity

218 постов2.6K подписчиков

Добавить пост

Правила сообщества

• Запрещается постить вопросы, мемы и прочую ерунду - для этого есть форумы и другие специализированные ресурсы.


• Распространение и обсуждение пиратского ПО, кейгенов, ключей и прочих пиратских файлов запрещено.


• Соблюдайте сетевой этикет. Оскорбительное поведение и мат (в том числе сокращенный или завуалированный) караются баном.


• Запрещается разводить полемики на тему "какой движок круче". Здесь мы обсуждаем только Unity.


• Запрещается использовать контент с оскорбительным содержанием, а так же любой другой, который может задеть или оскорбить чувства участников.