Есть ли способ получить массив, содержащий неустановленные префабы - PullRequest
0 голосов
/ 25 марта 2019

У меня есть папка Items, которая содержит префабы с прикрепленным классом, и я хочу сделать массив, заполненный этими префабами, чтобы сравнить их идентификационные номера, строку внутри класса item с идентификационными номерами.из базы данных, чтобы поместить эти префабы в массив инвентаря, я надеюсь, что это достаточно подробно.

1 Ответ

1 голос
/ 25 марта 2019

Это то, что вам, вероятно, нужно.

public List<GameObject> prefabsWithClassOnThem;

public GameObject CheckTheID(string ID)
{
    foreach (GameObject go in prefabsWithClassOnThem)
    {
        if(go.GetComponent<ItemClass>().getID() == ID){
            return go;
        }
    }
    return null;
}

prefabsWithClassOnThem - имя говорит само за себя.Это список префабов, которые вы должны будете вручную добавить в список.Затем вы добавляете свой скрипт в менеджер скриптов (или любой другой объект, который вам нравится), вот как это будет выглядеть: enter image description here

Нажмите на стрелку, напишите в нужном размере ипоместите все префабы вручную.

enter image description here

CheckTheID - метод, который будет проверять префаб с идентификатором, который вы дадите этому методу.

ItemClass - класс, который вы упоминали в своем вопросе.Класс, который содержит идентификатор prefab и имеет метод GetID ().

Вы захотите вызвать этот метод в своем методе addToInventory или что-то вроде этого.

Если вы хотите проверить, еслиОбъект был создан ранее, просто создайте дополнительный логический параметр в ItemClass, который будет иметь значение true, если он был создан (вам придется изменить его в первый раз, когда вы создадите один из префабов).Каждый раз, когда вы хотите создать уникальный элемент, просто проверяйте логическое значение, вот и все.

Извините за грязный язык.

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