Полагаю, когда вы говорите, что вам нужно имя компонента, вы на самом деле имеете в виду тип.Component.name фактически возвращает имя GameObject, к которому прикреплен Компонент, поэтому оно будет одинаковым для всех компонентов.
Вы могли бы сделать следующее
foreach(var component in GetComponents()) {
Debug.Log(component.GetType());
}
Интересно, зачем вам это понадобится, хотя ...