Насколько сильно логическая операция if нагружает процессор в Update?
прикинем по максимуму:

- берем по 20 тактов на каждое ветвление 40 * 20 = 800 тактов для IF
- будем считать что компилятор не делает предварительное чтение в кеш/регистры локальных переменных, берем для 40 проверок 80 целых (int) по (8 байт для х64) (bool откинем как простой) накинем задержку (для каждой в куче) запроса к драм в 20 тактов 40 * 80 * 20 = 64000 * 2 = 128000 (читаем+пишем без кеша) 
- накинем на обновление результатов движком ~10000 
итого: 138000 тактов * 60 кадров в секунду = 8 328 000 тактов 
это выходит где то 1% загрузки для 1 ггц мобильный АРМ, при 1 миллиарде одно-тактовых операций в секунду
десктопный процессор работает сразу на порядок быстрее, это примерно 0,1% для одноядерного 1 ггц
4ггц это уже 0,02%
(если компилятор умеет в предварительное чтение данных, то блок в 128000 тактов чтения можно сократить до скажем 1000, это в районе 15000 тактов ~0.001%, если в игре-системе хорошо работает кеш 1-2-3 уровня, то может и 100 тактов на всё чтение + запись) 
то есть выходит ваши 40 условий это от 1% до 0.02% бюджета для широкого диапазона слабых процессоров
Не ну вы можете замерять профайлером, но 40 ифов это ни о чем.