C# pauza w kodzie prosty skrypt

0

Zacząłem z unity i <ort>wgl </ort>z C# i chciałem zrobic w kodzie tak aby pewna akcja wykonywała sie co 5 sekund napisałem wiec taką oto funkcje (bo zobaczylem ja w dokumentacji unity)

I

Enumerator Example() {
                czy=false;

        yield return new WaitForSeconds(2);
        AKCJA();
        czy=true;
        
    
    }
i w void update() dałem taki kod:
    if(czy==true)
        {
            Example();

        }

To nie jest dokładnie tak jak w dokumentacji ale to z dok. też jakos mi nie działało. Co jest problemem??
Generalnie jak zobic w C# tak abys cos sie wykonywało co kilka sekuind?

0

W jakim języku jest ten post? Jest coś takiego jak Thread.Sleep() i w nawiasy wpisujesz ile milisekund.

0
Piękny Kot napisał(a):

W jakim języku jest ten post? Jest coś takiego jak Thread.Sleep() i w nawiasy wpisujesz ile milisekund.

W C#

0
Piękny Kot napisał(a):

W jakim języku jest ten post? Jest coś takiego jak Thread.Sleep() i w nawiasy wpisujesz ile milisekund.

Niestety Thread.Sleep() nie działa. W konsoli bład --> "Thread" does not exist in current context , wiec chyba w unity nie ma tej funkcji
.

1

Wystarczy dopisać using System.Threading

2

W unity nie ma na dobrej sprawy watkow jedynie co potrzebujesz to zrobic sobie timer.

mniej wiecej cos takiego

float maxTime = 5.0f;
float elapsedTime = 0;

void Update()
{
  elapsedTime += Time.deltaTime;
  if (elapsedTime > maxTime)
  {
    //tutaj akcja
    elapsedTime = 0;
  }
}
0
Biały Młot napisał(a):

Wystarczy dopisać using System.Threading

No tak dodałem bibl. ale to i tak nie to bo ta funkcja zamraża mi tak jakby kod

0
fasadin napisał(a):

W unity nie ma na dobrej sprawy watkow jedynie co potrzebujesz to zrobic sobie timer.

mniej wiecej cos takiego

float maxTime = 5.0f;
float elapsedTime = 0;

void Update()
{
  elapsedTime += Time.deltaTime;
  if (elapsedTime > maxTime)
  {
    //tutaj akcja
    elapsedTime = 0;
  }
}

Dzieki wydaje mi sie że działa

0

Napisałeś że chcesz żeby funkcja wykonywała się co 5 sekund więc co za różnica czy zamraża? Jak chcesz żeby nie zamrażało to musisz zaimplementować współbieżność.

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