Как сделать чтобы UI Элемент (Текст) появлялся при выполнение определенного действия?
Есть скрипт по перезарядке оружия. Нужно, чтобы при перезарядке появлялся текст Reloading
, а когда перезарядка не производится, текст исчезал. Как это можно сделать?
Текст сам имеется, нужно прописать его появление при перезарядке и исчезновение, когда ее нет.
{
public float offset;
public Transform firepoint; // Точка из которой вылетает пуля
public GameObject bulletPrefab; // Объект пули используемый для стрельбы
public Animator ShootAnimator; // Анимация применяемая к оружию
public int amountOfBullets; // Количество пуль вылетающее из точки вылета
public float spread, BulletForce = 1f; // Разброс пуль и скорость пули
public float TimeCouldown; // Время ожидания, перед следующим выстрелом
float nextfire;
public float Range;
public int maxAmmo = 5; // Максимальное кол-во патронов
public int currentAmmo; // Текущее кол-во патронов
public bool currentlyReloading = false; // Состояние перезарядки, не менять значение!
public float reloadTime = 5f; // Время перезарядки, менять лишь от оружия.
public TextMeshProUGUI AmmoInfoText;
public TextMeshProUGUI ReloadingInfoText;
void start()
{
currentAmmo = maxAmmo;
}
// Update is called once per frame
void Update()
{
AmmoInfoText.text = currentAmmo + " / " + maxAmmo;
if (currentlyReloading)
return;
if (currentAmmo <= 0) StartCoroutine(Reload());
if (Input.GetKey(KeyCode.R) && currentAmmo != maxAmmo)
{
StartCoroutine(Reload());
return;
}
Vector2 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position;
float angle = Mathf.Atan2(mousePos.y, mousePos.x) * Mathf.Rad2Deg;
transform.rotation = Quaternion.AngleAxis(angle + offset, Vector3.forward);
if(Input.GetMouseButton(0))
{
Shoot();
}
}
Источник: Stack Overflow на русском