Функция охлаждения для кнопки навыков в мобильной игре - PullRequest
0 голосов
/ 17 июня 2020

Я хочу добавить функцию охлаждения к кнопке навыков в моей мобильной игре, которую я сейчас разрабатываю. Поэтому я хотел, чтобы игрок мог использовать кнопку умения только раз в несколько секунд.

Левая кнопка - моя кнопка умения по умолчанию, а правая - дубликат. Кнопка навыка по умолчанию будет размещена над дубликатом, поэтому, когда я запускаю игру, после нажатия кнопки навыка по умолчанию, дубликат будет перекрывать кнопку навыка по умолчанию.

Skill Button Comparison

Однако в моем случае дубликат не может перекрывать кнопку навыка по умолчанию, поэтому он не показывает таймер охлаждения.

Мне интересно, нужно ли мне включать набор кодов для позволить кнопке умений по умолчанию становиться неактивной при нажатии, или мне просто нужно отсортировать слои? а внизу - дубликат, который я сделал для настройки цвета для создания эффекта наложения для охлаждения.

Skill Button Skill button 1 Code Inspector

Спасибо!

1 Ответ

1 голос
/ 17 июня 2020

Используйте Lerp вместо изменения количества заполнения в методе Update ()

void Start()
{
    abilityImage1.fillAmount = 0;
    ability1.onClick.AddListener(AbilityUsed);
}

private void AbilityUsed()
{
    if (isCooldown)
        return;
    isCooldown = true;
    abilityImage1.fillAmount = 1;
    StartCoroutine(LerpCooldownValue());
}

private IEnumerator LerpCooldownValue()
{
    float currentTime = 0;
    while (currentTime < cooldown)
    {
        abilityImage1.fillAmount = Mathf.Lerp(1, 0, currentTime / cooldown);
        currentTime += Time.deltaTime;
        yield return null;
    }
    abilityImage1.fillAmount = 0;
    isCooldown = false;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...