Не забудь корутину положить в объект и запускать через него, проверяя не запущена ли она уже, чтобы у тебя одновременно 500 корутин не работали параллельно. Только если это не желаемое поведение
В таком случае у тебя юнитековские евенты и есть обработчики. Я подразумевал именование обработчиков в коде. Если ты дергаешь методы прямо через инспектор тогда обработчиком выступает поле события, которое может содержать набор методов
OnColorChanging можно трактовать как "то, что происходит, когда изменился цвет". Если метод запускает изменение цвета, то я бы его назвал ChangeColorOverTime например, чтобы отразить что это длительный процесс
Выходит такая картина. Евент в инспекторе называется RoofCollision, на нем висит метод ChangeColorOverTime, а этот метод внутри запускает корутину ChangeColorCoroutine