Unity 2019 - перенос строки \ n не работает для текстовых элементов пользовательского интерфейса - PullRequest
0 голосов
/ 25 февраля 2020

У меня возникли некоторые трудности с переводом строк на работу для элементов пользовательского интерфейса Unity. (Unity 2019.2.17f1 Personal)

То, что я делаю:

string twoLinesOfText = LanguagePack.getTextByID(ID);

результат:

twoLinesOfText = "Text line 1\nText line 2"

Ожидаемый результат:

Text line 1
Text line 2

Реальность:

Text line 1\nText line 2

Я пытался использовать "\ n", "\\ n" и "\ r \ n". Ни один из них не дает ожидаемого результата.

Я назначаю текст для компонента, используя

UITextComponent.GetComponent<Text>().text = twoLinesOfText;

Может ли это прямое назначение быть проблемой? Нужно ли мне сделать sh мою строку с помощью toString () или проанализировать ее как-нибудь для распознавания \ n?

Обходной путь: у меня есть обходной путь. Используя файл XML для моего LanguagePack и вставляя (вводя) разрывы строк в базовый файл, я вставляю разрывы строк в элементы пользовательского интерфейса Unity. Очевидно, это не идеально. Считывание строк в Debug.Log не показывает, какой код разрыва строки был в конечном итоге использован: он просто разбивает строку в соответствии с (вводом) разрыва строки в файле XML.

1 Ответ

1 голос
/ 25 февраля 2020

Вы не можете импортировать его через языковой пакет. Что вы должны сделать, это:

string line1 = LanguagePackage.getTextByID(ID1);
string line2 = LanguagePackage.getTextByID(ID2);
string twoLinesOfText  = line1 + "\n" + line2;
UITextComponent.GetComponent<Text>().text = twoLinesOfText;
...