C# i Unity - Jak po 5 kliknięciach zacząć odliczać czas i go wyświetlić oraz następnie dodać 1 do zmiennej?

0

Witam, piszę 4fun gierkę i zastanawiam się od jakiegoś czasu jak przerobić poniższe kody, aby w Unity pokazywało, ile pozostało jeszcze do kliknięcia razy przycisku (UI Button), a po spełnieniu tego warunku zaczął się odliczać czas. Tzn. że na ekranie ma być progress bar, który wypełnia się kolorem w 20% po kliknieciu na button (Aby wypełnić cały należy kliknąć 5 razy - 1 kliknięcie=20%), a następnie przenieść ten przycisk na 2 plan, a na 1 odliczanie. Po skończeniu odliczania skrypt ma dodać 1 do zmiennej Moneylicznik i zrestartować progress bar. Proszę o wyrozumiałość, ponieważ jestem początkujący w pisaniu gier w Unity, ale szybko się rozwijam. Po napisaniu po kolei co mam zrobić, szczegółowo przeanalizuję każdy krok, aby lepiej zrozumieć mechanikę działania. Z góry dziękuję za każdą odpowiedź.

ButtonClicker.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Threading.Tasks;

public class ButtonClicker : MonoBehaviour
{
int licznik=0;
public GameObject textBox;

public async void ClickTheButton () {
licznik++;
if(licznik==5)
{
await Task.Delay(3000);
GlobalMoney.IloscKlikniec += 1;
licznik=0;
}
}

}

GlobalMoney.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class GlobalMoney : MonoBehaviour
{
public static int IloscKlikniec;
 public GameObject MoneyDisplay;
 public int Moneylicznik;

    // Update is called once per frame
    void Update()
    {
     Moneylicznik = IloscKlikniec;
	 MoneyDisplay.GetComponent<Text>().text = Moneylicznik + "$";
	}
}
1

W Unity raczej do takich rzeczy nie używa się wątków. Napisz sobie odpowiednie coroutines - metody typu IEnumerator, korzystające z yield, które odpalasz metodą StartCoroutine.

Do progressbara napisz sobie odpowiedni skrypt z metodami takimi jak np. reset, albo zwiększanie wartości...
Do odliczania napisz sobie odpowiednią coroutine, zmieniającą cyferki.

Jak chcesz zmienić tryb przycisku (jakieś elementy ukryć/pokazać), to podpiętym w edytorze obiektom wywołujesz metodę obj.SetActive(false/true);.

1 użytkowników online, w tym zalogowanych: 0, gości: 1