Я застрял на проблеме написания сценариев C # в Unity, которую я хотел бы решить.
Вот чего я хочу добиться:
- Введите имя в поле ввода
- Получить символы из поля ввода
- Для каждого персонажа: установите 3D GameObject персонажа, уже созданного в Иерархии.
- SetCharacterPosition рядом друг с другом, чтобы они могли создать имя
- Установите материал в этом порядке (синий, зеленый, красный, желтый) и начните заново.
- Просмотр заданного имени входа в цветном 3D-режиме на экране
Вот что я сделал до сих пор:
- Созданы 3D префабы каждого персонажа и загружены в иерархию.
- Создал графический интерфейс с InputField и кнопкой (+ Script)
- Создайте скрипт кнопки (button_scr), чтобы получить имя и разбить его на символы
public class button_scr : MonoBehaviour
{
public Button myButton;
public InputField un;
public GameObject go;
void Start ()
{
myButton = GetComponent<Button>();
myButton.onClick.AddListener(ProcessText);
}
void ProcessText()
{
Debug.Log("Your name is : "+un.text);
getCharacters(un.text);
}
void getCharacters(string text)
{
foreach (char c in text)
{
go = GameObject.Find(""+char.ToUpper(c));
go.SetActive (true);
// setPosicionNext2EachOther
// setColoredMaterial(Blue,Green,Red,Yellow) in this order
Debug.Log("GameObject name Log: "+go.name);
}
}
}
Некоторые соображения:
- Имена могут иметь несколько повторяющихся символов
- Имена могут иметь знаки ударения на гласных (Á, É, Í, Ó, Ú).
- Имена могут содержать символ "ñ".
Вот где я хотел бы немного сориентироваться, чтобы решить проблему:
- Я подумал о создании и заполнении массива GameObject со всеми ссылками на каждого персонажа следующим образом:
GameObject[0] = A 3D Character prefab
GameObject[1] = B 3D Character prefab
- Затем создайте цикл for, чтобы найти имя персонажа в массиве GameObject и сделать копию для настройки в игре.
- Установить положение 3D-символа
- Установите Материал для 3D-символа в последовательном порядке (синий, зеленый, красный, желтый)
Есть ли более простой способ сделать это, что мне не хватает?
Я хотел бы получить некоторую ориентацию / совет или образец кода, где я могу проверить решение аналогичной проблемы.