ID объекта можно найти в его структуре, но я думаю что вряд ли в играх на юнити для хранения объектов выделена связная карта. Там обычный list и всё сделано по индексации.
Я не хочу тебя обижать, но .NET платформа вообще не славилась своей скоростью выполнения. Если хочешь писать нормальное приложение за относительно короткие сроки бери C++ MFC. Например прога PlayClaw как раз на MFC написана.
А ты не думал что допустим какие-то значения могут элементарно кэшироваться? Или то что ты мог найти адрес, который только изменяется при сворачивании и разворачивании?