Resetowanie czasu

Programowanie w Unity.

Resetowanie czasu

Postprzez Gojir » 12 Lis 2018, 23:00

Cześć. Mam pytanie, czy jest możliwość resetowania czasu w unity?. Mam zmienna w ktorej przechowuje czas po czym konwertuje ja na stringa do zegar.text. Coroutine mi tu tez niedziala. Help me :?

void Update(){

Czas += Time.deltaTime;
Zegar.text = Czas.ToString();

If ( cube.transform.localPosition >= 10.0f){
// tutaj chcialbym zresetowac „zmienna” i .text i zaczac liczyc od nowa
}
}
Gojir
 
Posty: 10
Rejestracja: 17 Lis 2017, 02:36
Has thanked: 0 time
Been thanked: 0 time

Re: Resetowanie czasu

Postprzez patrykas1000 » 13 Lis 2018, 00:20

nie wiem co rozumiesz przez reset czasu, ale dla mnie to oznacza że czas będzie wynosić zero. Więc po prostu ustaw wartość zmiennej Czas na zero (czy jaką tam chcesz wartość), dokładnie w tym miejscu w którym napisałeś komentarz z tym
patrykas1000
 
Posty: 343
Rejestracja: 16 Sie 2013, 21:35
Has thanked: 0 time
Been thanked: 0 time

Re: Resetowanie czasu

Postprzez Gojir » 13 Lis 2018, 09:37

Reset casu chodzilo mi o zresetowanie odliczania czasu( Time.deltaTime) w zmiennej Czas i odliczanie od nowa (od 0) po jakimś tam warunku. W tym ifie robię Czas = 0f; i w Zegar.text jest cały czas 0, deltaTime nie działa. Niewiem gdzie robie błąd
Gojir
 
Posty: 10
Rejestracja: 17 Lis 2017, 02:36
Has thanked: 0 time
Been thanked: 0 time

Re: Resetowanie czasu

Postprzez Palanthir » 13 Lis 2018, 09:44

Widocznie warunek If ( cube.transform.localPosition >= 10.0f) jest zawsze true.
Palanthir
 
Posty: 97
Rejestracja: 31 Sie 2017, 16:13
Has thanked: 0 time
Been thanked: 0 time

Re: Resetowanie czasu

Postprzez Hostur » 13 Lis 2018, 10:53

Nie możesz i nie chcesz restartować Time.deltaTime, on nie należy do Ciebie.
Jak napisał Planthir warunek masz cały czas true wstaw tam brakepointa i zobacz co się dzieje.

Druga sprawa to kwestia optymalizacji

Kod: Zaznacz wszystko
private const float _maxLocalPosition = 10;
private Transform _cubeTransform;

private void Awake()
{
  _cubeTransform = cube.transform;
}

private void Update()
{
  float tmp = _time;
  if ( _cubeTransform .localPosition >= _maxLocalPosition)
    _time = 0;
  else
    _time += Time.deltaTime;
 if(tmp != _time)
  _clock.text = _time.ToString();
}
Hostur
 
Posty: 696
Rejestracja: 05 Sie 2015, 07:36
Has thanked: 0 time
Been thanked: 0 time


Wróć do Skrypty

Kto jest na forum

Użytkownicy przeglądający to forum: Brak zarejestrowanych użytkowników oraz 3 gości

cron