Ключи представляют собой объект класса Item. Они хранят свой Sprite и Key Code. У каждой двери есть Key Code. Если они совпадают, то дверь открывается. Ключи(кубики) на полу имеют скрипт CollectableItem. Этот скрипт имеет поле Item, в которое помещается ключ(item). При "наезде" на этот объект он добавляет принадлежащий ему Item в массив класса Invenory. Класс Inventory отвечает за все манипуляции с предметами в инвентаре. При подходе к двери и нажатии кнопки "E"(eng), она забирает экземпляр активного в инвенторе item и сверяет его данные(Key code).
Иногда камера может работать дергано(это какая-то странность Unity) в этом случае надо нажать Tab, с помощью мыши выбрать в редакторе какой-то обект и нажать Tab. Дерганье должно пропасть.