Підтримка декількох мов в грі - nullcode studio, ігри, unity, скрипти

Є різні способи вирішення цієї проблеми, тим не менш, пропонуємо свій варіант. Можливо комусь цей спосіб стати в нагоді. Орієнтований він, до речі кажучи, для зміни мови інтерфейсу гри. Працює скрипт тільки з об'єктами Unity UI. Суть полягає в наступному. Наприклад, при створенні меню якихось налаштувань, для опису її елементів ми використовуємо UI Text, кожен з яких в свою чергу, поміщаємо в спеціальний масив. Тобто, ми можемо вибрати, де мова буде змінюватися. А самі мовні пакети, знаходяться у зовнішній папці, в цьому власне фішка. Інакше кажучи, локалізацію можна зробити, коли гра вже готова і скомпільована. Після запуску, всі наявні мови, стануть доступні в окремому меню.


Отже, у нас є готове меню або який-небудь інтерфейс. Тепер в гру потрібно вмонтувати список Dropdown UI. додаємо його в потрібне місце і налаштовуємо зовнішній вигляд за смаком. Далі, створюємо в проекті папку з ім'ям, наприклад, Localization. Ця папка повинна знаходиться поруч зі стандартною папкою проекту Assets. а після компіляції гри, її потрібно створити поруч з виконуваним файлом.

Вішаємо на сцену скрипт Localization:


Вказуємо всі необхідні елементи.

Додатково, створюємо допоміжний скрипт LocalizationEditor:


Він потрібен для генерації файлу-шаблона.

Як це працює?

Весь текст інтерфейсу створюємо на "мові за замовчуванням", припустимо, англійська. Коли все готово і в масив скрипта доданий всі необхідні елементи, в інспектора тиснемо кнопочку Build Default Locale:

Підтримка декількох мов в грі - nullcode studio, ігри, unity, скрипти


На основі масиву тексту, створюється id масив, який є ключем, однаковим текстовим елементам буде присвоєно один і той-же id. Потім відбувається запис в файл як ключа, так і тексту, який йому відповідає. Таким чином, оригінальний інтерфейс працює як шаблон. При завантаження мови, використовується раніше створений id масив, потім йде пошук таких же ключів у файлі і заміна тексту в елементах інтерфейсу. Якщо припустимо, видалити всі мови або взагалі папку з ними, то оригінальний інтерфейс нікуди не дінеться, просто не можна буде змінити мову. Ще не варто забувати, що скрипт не підганяє розміри тексту, а лише змінює його, це треба враховувати при перекладі слів.


Все що потрібно зробити це дублювати файл Default.xml перейменувати допустимо в Russian.xml і зробити переклад значень:


Зберігаємо і готово! Тепер будуть доступні дві мови.

Ви не можете завантажувати файли з нашого сервера

Схожі статті