getAlex 20 июл 2015, 13:17
Это немного странный подход(т.к. обычно через компонент не делают), но я всё же посоветую.
Начнём с того, что реген от фонтана это эффект, такие как замедления от ледяной стрелы, стан, яд или аура урона.
Когда плеер входит в зону фонтана, сперва проверяется за какую команду(союзник/враг) фонтан и за какую команду игрок. Если в настройках спела указано, что текущий спел распространяется на союзников, а не на врагов(ещё можно проверять действует ли на воздушные единицы, на технику и т.д.), тогда игроку добавляется компонент Regen: ISpell , который в свою очередь хеширует GetComponent<Player>() и дальше воздействует на характеристики плеера. Если это аура, то компонент сам себя уничтожает через какой-то определённый тик времени(даже если аура моментальна - должен быть тик). Если же это какой-то "морозная стрела 5 уровня", то у неё в характеристиках и так есть сколько она висит на персонаже. Как только компонент отваливается, он перестаёт действовать на персонажа. Для моментальных аур ещё можно проверять "находится в зоне", чтоб не было как в вар3 иногда глючили ауры и мелькали.