Как объединить строку и поставить ее на кнопки C # Unity - PullRequest
1 голос
/ 14 апреля 2019

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

Вот изображение для справки

enter image description here

Тот, который обведен синим цветом, код для этого это

textComp.text = "";

rowsToReadFrom[0] = indexx;
textArray = myTextAsset.text.Split('\n').ToList();
textComp.text += textArray[rowsToReadFrom[0]] + "\n";

indexx += 1;

И тот, который обведен красным, тот, который я хотел, и код для этого это

char[] chars = words[index].GetString().ToCharArray();
        foreach (char c in chars)
        {
            testObject clone = Instantiate(prefab.gameObject).GetComponent<testObject>();
            clone.transform.SetParent(container);

            charObjects.Add(clone.Init(c));
        }

Может кто-нибудь, пожалуйста, укажите мне, что мне делать.

Ответы [ 2 ]

1 голос
/ 14 апреля 2019

Давайте разделим задачу на подзадачи и решим:

Для concatenate string используйте оператор +, он объединяет string (s) - Первый решенный

Чтобы поместить его в кнопки, получите length этого string, теперь динамически генерируйте Button (s) , равный длине этого string и расположите их один за другим.

[Получить символ в n -й позиции, используя str [n], индексирование от 0.]

Установить текст Button.- Вторая проблема решена .

Это поможет создать Button.

Изменить text Button с помощью GetComponent<Button>().text.

Чтобы преобразовать один символ в string, создайте string вот так

string tem=Character.toString(your_character) (строка, содержащая один пробел), вуаля

Теперь используйте его.

0 голосов
/ 14 апреля 2019

Хотя ответ там тоже правильный, но у меня есть свой собственный ответ, и вот он

string temp = textArray[rowsToReadFrom[0]];
temp = System.Text.RegularExpressions.Regex.Replace(temp, @"\s", "");
char[] chArr = temp.ToCharArray();

Затем наденьте его на такую ​​кнопку

foreach (char c in chArr)
        {
            testObject clone = Instantiate(prefab.gameObject).GetComponent<testObject>();
            clone.transform.SetParent(container);

            charObjects.Add(clone.Init(c));

            //Debug.Log(c);
        }

...