Unity - простой способ локализации

preview_player
Показать описание
Привет, в данном видео покажу довольно простой способ локализации игры. Приятного просмотра )
Если вам нравятся уроки и вы хотели бы поддержать автора, буду очень рад
Рекомендации по теме
Комментарии
Автор

Для простого проекта идеальный вариант! Спасибо

daddycanstudio
Автор

Господи, шедевральная реализация. С намеком на расширение базы языков до бесконечности. Конечно в данном случае без массивов, что при топорной реализации может привести к километрам кода, но как основной принцип - весьма не дурно. Я думаю что это поможет в моем проекте. Так как используется система диалогов через массивное заполнение, а не просто стринговый текст как объект. И данный метод можно внедрить непосредственно в сам скрипт диалогов, а так же его же можно использовать для изменения и обычного текста. Спасибо автор за эту идею. Хоть это и основа, но ты забыл сказать что на "кнопку" необходимо кинуть наш менеджер и выбрать воид с языком. Мелочь, а некоторым было бы приятно.

LineWay
Автор

LocalizationManager:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;


public class LocalizationManager : MonoBehaviour
{
public void rusLang()
{
string language = "rus";
PlayerPrefs.SetString("Lang", language);
SceneManager.LoadScene(2);
}
public void engLang()
{
string language = "eng";
PlayerPrefs.SetString("Lang", language);
SceneManager.LoadScene(2);
}
public void deuLang()
{
string language = "deu";
PlayerPrefs.SetString("Lang", language);
SceneManager.LoadScene(2);
}
}

TextItem:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class TextItem : MonoBehaviour
{
public string language;
Text text;
public string textRus;
public string textEng;
public string textDeu;

void Start()
{
text = GetComponent<Text>();
language =

if(language == "" || language == "eng") //P.S. я ставлю инглиш как дефолт
{
text.text = textRus;
}

if (language == "deu")
{
text.text = textDeu;
}

if (language == "rus")
{
text.text = textRus;
}
}
}

syharikoff
Автор

Спасибо огромное автору видео, отличный способ!

alexandritekat
Автор

Такое можно и самому допетрить если хоть немного подумать.
Больше интересует ситуация когда текст выдаётся из скрипта например: example.text = "Hello " + name; Как в этом случае Hello локализовать? А если таких слов и фраз десятки? А если example.text принимает в себя много разных строковых переменных в зависимости от ситуации?

akillus
Автор

Знаеш я новичок и делаю первую игру. Когда дело дошло до мультиязичности я нашол одно видео AndroidHelper и по ему я делал скрипки и прочее 4 часа и в итоге нечего не вишло.Но с помощю етого видео я зделал за 20 минут. Блин немного проще суть и код в 10 раз менше. Спасибо

xtugfxq
Автор

Перезагрузка сцены зачем?
Почему не использовать отдельные файлы для языковых пакетов?
Либо использовать из Unity ассет для мультиязычности?
Самый просто в использовании ассет.
Не благодарите)

realvladlen