Możesz wstrzymać swoją grę z poziomu edytora w dowolnym momencie. Ale czy wiesz, że możesz wywołać pauzę z poziomu kodu na podstawie jakiegoś warunku?

error pause console

Istnieje opcja konsoli o nazwie Error Pause. Po jej włączeniu gra zostanie wstrzymana, gdy wystąpi jakikolwiek błąd w czasie uruchamiania. Kiedy gra jest wstrzymana, możesz łatwo zbadać, co dzieje się na scenie, aby lepiej zrozumieć problem. Ale co jeśli chcesz spauzować grę na podstawie niestandardowego warunku? To też można zrobić!

Aby to zrobić, musisz użyć funkcji Debug.Break(). Po prostu wywołaj ją, gdy chcesz wstrzymać działanie swojego edytora Unity.

Przykład

C#

1
2

.

3
4
5
6
7
8
9

using UnityEngine;
public class DebugBreakExample : MonoBehaviour {
void OnGUI() {
if (GUILayout.Button(„Pause Now!”)) {
Debug.Break();
}
}
}

Ten przykład wyświetla przycisk w lewym górnym rogu. Kiedy przycisk jest kliknięty, edytor pauzuje.

Debug.Break() ma jeszcze jedną znaczącą przewagę nad ręcznym pauzowaniem i przechodzeniem do przodu. Może spauzować twoją grę w środku ramki wykonania. Oznacza to, że część twojego obiektu może wciąż czekać na wywołanie Update(), a druga część została już zaktualizowana. Jest to naprawdę przydatne w sytuacjach, gdy masz do czynienia z błędem, który pojawia się losowo.

Nie martw się o pozostawienie funkcji Debug.Break() w swoim kodzie. Kiedy Twoja gra jest zbudowana, to dosłownie nic nie robi! 🙂

Pliki

Jak zwykle, możesz pobrać przykładowy unitypackage tutaj. Wystarczy kliknąć na niego dwukrotnie, aby zaimportować jego zawartość do swojego projektu Unity. Znajdziesz w nim przykładową scenę oraz skrypt, o którym mowa powyżej.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.