@uriy99

Как добавить на кнопку ведения огня в интерфейсе игры индикатор перезарядки с радиальным заполнением?

Добрый день,вот моя кнопка подстроенная под мобильные системы.Как на неё добавить индикатор?И раз вся логика в Player значит и строчки нужно добавлять сюда же.
5f367c60897c6788552593.jpeg

Вот логика экранного контроллера и стрельбы:
public void InitUIController(UICharacterController uiController)
   {
    controller=uiController;
    controller.Fire.onClick.AddListener(CheckShoot);
   }

private void CheckShoot()
    {
        if (!canShoot)
        {
            animator.SetTrigger("StartShoot");
        }
    }

  public void InitArrow()
    {
        currentarrow = GetArrowFromPool();
        currentarrow.SetImpulse(Vector2.right, 0, 0, this);
    }
private void Shoot()
    {
        currentarrow.SetImpulse
                (Vector2.right, spriteRenderer.flipX ?
                -force * shootForce : force * shootForce, (int)extraDamage, this);

        StartCoroutine(Reload());
    }  

  private IEnumerator Reload()
{
  canShoot = true;
  yield return new WaitForSeconds(cooldown);
  canShoot = false;
}

Думаю логику стрельбы трогать не нужно,а нужно именно логику кнопки написать.Помогите пожалуйста.
  • Вопрос задан
  • 162 просмотра
Решения вопроса 1
@uriy99 Автор вопроса
Добрый день,уважаемые,сделал задание через Fill Amount:
public class FireCooldown : MonoBehaviour 
{
 public Image FireImage;
 public float cooldown= 1;
 bool isCooldown =false;
 public KeyCode Shoot;
	
	void Start () 
	{
		FireImage.fillAmount=0;
	}

	
	
	void Update () 
	{
		Shoot1();
	}
	void Shoot1()
	{
		if(Input.GetKey(Shoot)&& isCooldown == false)
        {
			isCooldown =true;
			FireImage.fillAmount=1;
		}
		if (isCooldown)
		{
          FireImage.fillAmount -=1 / cooldown * Time.deltaTime;
		  if(FireImage.fillAmount <= 0)
		  {
			  FireImage.fillAmount = 0;
			  isCooldown =false;
		  }
		}

	}
}

Используем обычные библиотеки такие как:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
Ставим на канвас этот скрипт добавляем кнопку огня и вуаля оно работает.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
freeExec
@freeExec
Участник OpenStreetMap
У Image есть режим filled с радиальным заполнением.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы