Как вставлять в заготовленный текст имя?

Рейтинг: 0Ответов: 2Опубликовано: 12.06.2023

У меня есть заготовленный текст(Который указывается в самом юнити). Нужно, чтобы в этом тексте вставлялось имя игрока. Как это сделать?

_textDialog.text = text[_textIndex]; // Например "Привет {name}!". 
//Также есть и текст БЕЗ употребления имени: "Привет друг"

То, что мне нужно(Пример) в выводе: Привет ИМЯ!

Как создаётся текст:

введите сюда описание изображения

Ответы

▲ 1Принят

Ты указал, что вставлять, а откуда брать ты не указал. Да и вообще, стоит написать вот так

_textDialog.text = text[0].Replace("{name}",Name);
▲ -1
    private string BuildArgs(string message, params string[] args)
    {
       string temp = message;
    
       int lastIndex = 0;
       for (int iterator = 0; iterator < args.Length; iterator++)
       {
            lastIndex = temp.IndexOf("%s", lastIndex);
    
            if (lastIndex == -1)
                throw new ArgumentOutOfRangeException();
    
            temp = temp.Remove(lastIndex, 2);
            temp = temp.Insert(lastIndex, args[iterator]);
        }

        return temp;
    }

EXAMPLE:

string message = "Hi, %s. how are you?";
string insertArg = "Vova";
Debug.Log(BuildArgs(message, insertArg));