Unity play mode nie chce się włączyć i pętla "zawsze"

Unity play mode nie chce się włączyć i pętla "zawsze"

Wątek przeniesiony 2022-04-20 23:09 z C# i .NET przez Ktos.

As7887
  • Rejestracja:około 4 lata
  • Ostatnio:około 2 lata
  • Postów:16
0

Witam!
Mam pewien problem. A mianowicie chcę aby w grze dana czynność powtarzała się zawsze.
Napisałem taki kod:

Kopiuj
    void Update()
    {
        while (1 < 2)
        {
            transform.Translate(Vector3.forward * 10 * Time.deltaTime);
        }
    }

W Visual Studio nie wyskakują żądne błędy, ale play mode nie chce się załadować włącza się w nieskończoność!
Pomoże ktoś?
screenshot-20220420195759.png

edytowany 2x, ostatnio: flowCRANE
Spine
  • Rejestracja:około 22 lata
  • Ostatnio:około godziny
  • Postów:6661
1

Czynność umieszczona w Update będzie się zawsze powtarzała (dla każdej wyświetlanej klatki) bez konieczności użycia nieskończonej pętli.
Możesz używać pętli while wewnątrz Update, ale dla algorytmów, które kiedyś się kończą.

BTW. zapraszamy do zadawania pytań dotyczących Unity w dziale Gamedev ;)


🕹️⌨️🖥️🖱️🎮
edytowany 2x, ostatnio: Spine
As7887
ok, dzk. Będę już dawał w #Gamedev
As7887
  • Rejestracja:około 4 lata
  • Ostatnio:około 2 lata
  • Postów:16
0

@Spine: A masz jakiś pomysł dlaczego playmode się nie włącza?

Spine
  • Rejestracja:około 22 lata
  • Ostatnio:około godziny
  • Postów:6661
1

Kolejność wykonywania metod: https://docs.unity3d.com/Manual/ExecutionOrder.html
Update wykonuje się przed renderowaniem każdej klatki.
Jak Unity wchodzi w Update z pętlą nieskończoną, to nie może nawet pierwszej klatki wyświetlić.
Silnik nie może odetchnąć, bo cały czas wywołuje transform.Translate i nie wyrzuca wyników na ekran.

Przy okazji, zamiast while (1 < 2), lepiej napisać while (true). Oczywiście trzeba to stosować tylko tam, gdzie naprawdę chcemy pętlę nieskończoną.


🕹️⌨️🖥️🖱️🎮
edytowany 3x, ostatnio: Spine

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.