Puedes pausar tu juego desde el editor cuando quieras. Pero, ¿sabías que puedes desencadenar la pausa desde el código basándote en alguna condición?
Hay una opción en la consola llamada Pausa por error. Cuando está activada, pausará tu juego cuando se produzca cualquier error de ejecución. Cuando tu juego está en pausa, puedes investigar fácilmente lo que ocurre en tu escena para poder entender mejor el problema. ¿Pero qué pasa si quieres pausar tu juego en una condición personalizada? También se puede hacer!
Para hacer esto, tienes que utilizar la función Debug.Break(). Simplemente llámala cuando quieras pausar tu editor de Unity.
Ejemplo
1
2
3
4
5
6
7
8
9
|
utilizando UnityEngine;
public class DebugBreakExample : MonoBehaviour {
void OnGUI() {
if (GUILayout.Button(«¡Pause Now!»)) {
Debug.Break();
}
}
}
|
Este ejemplo muestra un botón en la esquina superior izquierda. Cuando se hace clic en el botón, el editor hace una pausa.
Debug.Break() tiene una ventaja más significativa sobre la pausa manual y el paso adelante. Puede pausar su juego en medio de un marco de ejecución. Esto significa que parte de tu objeto puede estar todavía esperando la llamada a Update() y la otra parte ya ha sido actualizada. Esto es realmente útil para situaciones en las que estás lidiando con un error que aparece al azar.
No te preocupes por dejar funciones Debug.Break() en tu código. Cuando tu juego está construido, ¡no hace literalmente nada! 🙂
Archivos
Como siempre, puedes descargar el unitypackage de ejemplo aquí. Sólo tienes que hacer doble clic en él para importar su contenido a tu proyecto Unity. Allí encontrarás una escena de ejemplo y el script de arriba.