106. CLASE DEBUG







Clase que contiene métodos para desbugear con facilidad mientras se desarrolla un juego:


VARIABLES DE CLASE:

isDebugBuild:

static var isDebugBuild : boolean


En el diálogo Build Settings, que podemos encontrar en el menú=>File, hay un check box llamado “Development Build”. Si dicho check box está marcado, entonces isDebugBuild será true.


FUNCIONES DE CLASE:

DrawLine:

static function DrawLine (start : Vector3, end : Vector3, color : Color = Color.white, duration : float = 0.0f) : void


Dibuja una lidea desde el punto que le pasemos como parámetro start hasta el establecido como end con el color que le establezcamos como tercer parámetro y durante un tiempo fijado en duration. Si la duración es 0 entonces la linea es dibujada un frame.

La linea será dibujada en la vista de escena del editor. Si en la ventana Game está habilitada la opcion Gizmos, también se mostrará ahí la línea.

Un pequeño ejemplo:


function Update () {
Debug.DrawLine (Vector3.zero, transform.position, Color.red);
}


Estamos dibujando una línea que empezaría en el centro de la escena y que iría hasta el centro del objeto que tiene vinculado el script, esto es, la esfera. La línea sería de color rojo y se dibuja cada frame, coincidiendo con las veces que es llamada la función Update. Si queremos ver también la línea en la vista Game, recordemos activar el botón Gizmos.


DrawRay:

static function DrawRay (start : Vector3, dir : Vector3, color : Color = Color.white, duration : float = 0.0f) : void


Dibuja una línea desde start a start+dir con el color que especifiquemos por una duración de tiempo también establecida. Si duración es 0 entonces la línea es dibujada un frame.

Para ver las diferencias con la función anterior, lo mejor será realizar el mismo ejemplo con la nueva función. Así:


function Update () {
Debug.DrawRay (Vector3.zero, transform.position*10, Color.red);
}


Vemos que aquí el segundo parámetro no es el destino final del rayo, sino la dirección y distancia de éste. En este caso veremos una línea/rayo de 10 metros saliendo desde el centro de la escena.


Break:

static function Break () : void


Pausa el editor. Esto es útil cuando queremos comprobar ciertos valores en el inspector y no somos capaces de pausarlo manualmente.


Log:

static function Log (message : object) : void

Anota mensajes en la consola de Unity:


Debug.Log("Hola, mundo");


static function Log (message : object, context : Object) : void

Cuando seleccionas en mensaje en la consola se dibuja una conexión con el objeto contextual. Esto es muy útil si queremos saber qué errores ocurren en un objeto. Me explico. Escribimos esto en MiPrimerScript (que recordemos que tenemos vinculado a la esfera):


Debug.Log ("Hola, mundo", gameObject);


Al darle al play, tal como podemos suponer, aparece el mensaje impreso en la consola. Pero en este caso, si hacemos click sobre ese mensaje, observaremos que en la jerarquia automáticamente se nos selecciona la esfera durante unos segundos.


LogError:

static function LogError (message : object) : void


Una variable de Debug.Log que anota un mensaje de error en la consola (en color rojo)


Debug.LogError("Esto es un error");


static function LogError (message : object, context : Object) : void

Variante similar a la que tratábamos antes para Log.


LogWarning:

static function LogWarning (message : object) : void

Una variante de Debug.Log que muestra un mensaje de aviso en la pantalla (en color amarillo)

static function LogWarning (message : object, context : Object) : void

Mensaje vinculado a un determinado objeto, como en los dos casos anteriores.

POSTED BY UnityScripts
POSTED IN
DISCUSSION 1 Comment

One Response to : 106. CLASE DEBUG

  1. En el ejemplo de Debug.DrawRay, para que el rayo sea de 10 metros falta aplicar "normalized":

    Debug.DrawRay(Vector3.zero, transform.position.normalized*10, Color.green);

Leave a Reply

Con la tecnología de Blogger.