ellz, если вы по каждой такой проблеме будете строчить вопросы на тостер - сотрете клаиватуру. https://docs.microsoft.com/en-us/dotnet/api/system...
почитайте что принимает в качестве второго аргумента substring. И посчитайте с какого по какой символ должна быть подстрока при i==1
ellz, Еще раз - у вас нет такого количества символов в mainText.text.
Поставьте брейкпоинт и посмотрите от какого текста вы пытаетесь взять подстроку, и с какого символа.