Это то, что вам, вероятно, нужно.
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 - имя говорит само за себя.Это список префабов, которые вы должны будете вручную добавить в список.Затем вы добавляете свой скрипт в менеджер скриптов (или любой другой объект, который вам нравится), вот как это будет выглядеть: 
Нажмите на стрелку, напишите в нужном размере ипоместите все префабы вручную.

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