Как, после получения урона персонажем, дать ему неуязвимость на время?

Столкнулся с проблемой:нужно сделать для игрока неуязвимость на определенное количество времени и это должно работать при нажатии на кнопку


Ответы (1 шт):

Автор решения: Максим Фисман
private bool isInvulnerable;

private IEnumerator setInvulnerability (float time) {
    isInvulnerable = true;
    yield return new WaitForSeconds(time);
    isInvulnerable = false;
}

private void onGetDamage () {
    if (!isInvulnerable) {
        // Получение урона только если НЕ неуязвимый
    }
}

setInvulnerability() вызывается c помощью StartCoroutine(setInvulnerability());

P.S.: В заголовке у вас написано, что неуязвимость после получения урона, в вопросе - по кнопке. В общем, я вам дал метод, а вызвать его можно и из OnClick и в конце onGetDamage() - где хотите.

P.S. 2: Ни в русском, ни в английском нет короткого слова для "неуязвимость", а Invulnerability - долго и легко опечататься, советую использовать предложенную Methorn переменную IsImmortal, ибо immortal - бессмертный

→ Ссылка