Можно ли вызвать префаб в Unity с помощью переменной? - PullRequest
0 голосов
/ 05 мая 2020

Я создаю приложение, которое создает экземпляр определенной модели, когда камера направлена ​​на QR.

Затем приложение связывается с веб-сайтом и показывает данные места, связанного с моделью (пример: botani c сад, там изображены цветы и текст об экологии)

Дело в том, что, хотя я могу использовать текст с веб-сайта, используя JSon, я не могу найти способ сделать то же самое.

У меня также есть код, который делает JSon, этот возвращает имя модели.

Мой вопрос: есть ли способ использовать это имя для поиска префаб в моих активах и, таким образом, создать экземпляр префаба?

Ответы [ 2 ]

0 голосов
/ 05 мая 2020

да, это возможно, создайте словарь (строка, GameObject) и список для инспектора с его префабами, используйте список для создания нового словаря

Private void Awake () {
dictionary = новый словарь (строка, GameObject); // <- (без скобок) <br>foreach (GameObject go в yourList) {
dictionary.Add (go, go .name);

}

Private void Search (имя строки) {
if (dictionary.ContainsKey (name)) {

Instantiate (dictionary [name]);

}

}

0 голосов
/ 05 мая 2020

Обходной путь: назначьте префабы в редакторе, в вашем скрипте есть ссылки на разные префабы:

public GameObject prefab1;
public GameObject prefab2;

Если вы хотите создать экземпляр своего префаба

switch (JSONstring) {

case "Garden":
Instantiate(prefab1, new Vector3(0, 0, 0), Quaternion.identity);
break;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...