48. CLASE MONOBEHAVIOUR (VIII)










OnGUI:

function OnGUI () : void


Es llamada para renderizar y manejar eventos GUI. Esto significa que nuestra implementación de OnGUI podría ser llamada varias veces por frame, a razón de una llamada por evento. Esto lo trabajaremos más cuando estudiemos las clases Event y GUI.


OnRenderImage:

function OnRenderImage (source : RenderTexture, destination : RenderTexture) : void


Es llamada cuando se tiene toda la información de renderizado de una imagen, permitiendo modificar la imagen final procesándola con filtros.

La imagen entrante (source) es de tipo renderTexture y el resultado lo almacenamos en otro parámetro del mismo tipo (destination en el prototipo de la función). Cuando hay múltiples filtros de imagen vinculados a la cámara, estos procesan la imagen secuencialmente, pasando el primer filter destination como source del siguiente filtro.

Este mensaje será enviado a todos los scripts vinculados a la cámara.


OnDrawGizmosSelected:

function OnDrawGizmosSelected () : void


Implementa esta function si quieres dibujar gizmos sólo si el objeto está seleccionado.

Vamos a verlo con un ejemplo simple. Es necesario para ver el efecto que previo a darle al play el cubo no esté seleccionado.


function OnDrawGizmosSelected () {
Gizmos.color = Color.white;
Gizmos.DrawCube (transform.position, Vector3 (2,2,2));
}


No nos fijemos demasiado en los elementos de la clase Gizmos, que ya veremos en su momento. De momento sólo necesitamos saber que , cuando se seleccione el cubo -bien en la jerarquía, bien en la escena, bien con el juego activado o incluso sin que el juego esté activado- nos aparecerá un gizmo que se corresponderá a un cubo blanco de 2 unidades de lado.

Probémoslo.


OnDrawGizmos:

function OnDrawGizmos () : void


Implementa esta función si quieres dibujar gizmos que aparezcan siempre dibujados. Esto te permite rápidamente seleccionar objetos importantes en tu escena, por ejemplo. Notad que esta función usa una posición del ratón que es relativa a la vista de la escena.

Para mostrar esto en un ejemplo necesitamos unos pasos previos:


1.- Buscad por la red la imagen de una bombilla (no demasiado grande).
2.- La guardáis y le asignáis el nombre "Bombilla" (Fijaros en la extensión de la
imagen. Si es distinta de la que voy a utilizar yo, cambiadla en el script)
3.- Buscáis la carpeta de nuestro proyecto Unity, y arrastráis la imagen dentro de
la carpeta assets.
4.- En la interfaz, hacemos click derecho sobre Proyecto =>Create =>Folder.
Llamamos a la nueva carpeta Gizmos (es donde por defecto buscará Unity)
5.- En Proyecto, arrastramos la imagen dentro de esta carpeta.
6.- Doble click sobre MiPrimerScript. Tecleamos:


function Update(){
transform.Translate(-Vector3.right * Time.deltaTime);
}

function OnDrawGizmos() {
Gizmos.DrawIcon (transform.position + Vector3(0,5,0) , "Bombilla.jpeg");
}


Si hemos seguido correctamente estos pasos, cubo e imagen deberían desplazarse al unísono hacia la izquierda, tal que así:

POSTED BY UnityScripts
DISCUSSION 0 Comments

Leave a Reply

Con la tecnología de Blogger.