Как уже говорилось, проблема в том, что poolDictionary[tag]
имеет тип Queue<GameObject>
, а не GameObject
.
Если вам нужно получить первый элемент в этой очереди без использования Dequeue
(который удаляетэлемент из очереди) вы можете просто использовать Peek
вместо
GameObject objectToSpawn = poolDictionary[tag].Peek();
Этот метод похож на метод Dequeue, но Peek не изменяет очередь.
Чтобы получить их все, не удаляя их из очереди, вы можете использовать, например, ToArray()
и пробегать элементы в цикле for
или foreach
илипросто получить доступ к определенному, например, равный (не в смысле издержек) вызов Peek
может быть
GameObject objectToSpawn = poolDictionary[tag].ToArray()[0];
То, что я пока не понимаю, это почему использовать Queue
, еслиВы не хотите Dequeue
it ...
Вы, вероятно, могли бы просто использовать List<GameObject>
, чем, поскольку порядок List
также не изменился (по крайней мере, не делая это активно)
Если это явно для пула объектов (что, кажется, из именования иpawning) вам, возможно, стоит посмотреть учебник по пулам объектов .. спойлер: они используют List
;)