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

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

0

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

    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

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 ;)

0

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

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ą.

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