А) Растягивать стены / полы до нужных размеров чтобы они покрывали весь экран;
Б) Приближать камеру, чтобы не было пустот.
Естественно рассчитывать что экраны бывают от 4:3 до 21:9
Более того у transform можно запрашивать его дочерние объекты. Это уж точно лучше, чем искать объекты во всей сцене.
Но в вашем случае где, все элементы канвасы - идеально GetComponentsInChildren<Canvas>(), если конечно там глубже их нет.
Используйте NavMesh для навигации по уровню. Выбираете рандомную точку на уровне и отправляете туда врага. Периодически проверяете близость игрока, чтобы начать его преследовать.
А от нас то вы что хотите. Как вы код написали, так он и работает, не чего лишнего не придумывает и не пропускает. Если он не ищет новую цель, значит вы так криво описали ему задачу.