49. CLASE MONOBEHAVIOUR (y IX)
OnApplicationPause:
function OnApplicationPause (pause : boolean) : void
Es enviada a todos los gameobjects cuando el jugador presiona la pausa.
OnApplicationFocus:
function OnApplicationFocus (focus : boolean) : void
Función enviada a todos los gameobjects cuando el jugador obtiene o pierde el foco.
OnApplicationQuit:
function OnApplicationQuit () : void
Función que se envía a todos los gameobjects antes de que la aplicación se cierre. En el editor es llamada cuando el usuario detiene el play, en la web es llamada cuando la página se cierra.
OnPlayerConnected:
function OnPlayerConnected (player : NetworkPlayer) : void
Es llamada en el servidor cada vez que un nuevo jugador se conecta con éxito.
Esta función y las que relacionaremos a continuación las trataremos en profundidad la función Network y familia.
OnServerInitialized:
function OnServerInitialized () : void
Llamada en el server cada vez que Network.InitializeServer es invocada y completada.
OnConnectedToServer:
function OnConnectedToServer () : void
Es llamada esta función en el cliente cuando consigues conectarte con éxito al servidor.
OnPlayerDisconnected:
function OnPlayerDisconnected (player : NetworkPlayer) : void
Llamada en el server cada vez que un jugador se desconecta del server.
OnDisconnectedFromServer:
function OnDisconnectedFromServer (mode : NetworkDisconnection) : void
Llamada en el cliente cuando la conexión se pierde o desconectas del servidor.
OnFailedToConnect:
function OnFailedToConnect (error : NetworkConnectionError) : void
Llamada en el cliente cuando un intento de conexión falla por alguna razón. La razón por la que falla es pasada como una enumeración de tipo Network.ConnectionError.
OnFailedToConnectToMasterServer:
function OnFailedToConnectToMasterServer (error : NetworkConnectionError) : void
Llamada en clientes o servidores cuando hay un problema conectando con el MasterServer. La razón del error es pasada como una enumeración de tipo Network.ConnectionError.
OnMasterServerEvent:
function OnMasterServerEvent (msEvent : MasterServerEvent) : void
Llamada en clientes o servidores cuando informan de eventos desde el MasterServer, como por ejemplo que haya tenido éxito el registro en el host.
El tipo MasterServerEvent es una enum con los siguientes valores:
RegistrationFailedGameName: El registro falló porque se indicó un nombre de juego
vacío.
RegistrationFailedGameType: El registro falló porque se indicó un tipo vacío de
juego.
RegistrationFailedNoServer: El registro falló porque ningún servidor está
funcionando.
RegistrationSucceeded: El registro al servidor maestro tuvo éxito, y se recibió
confirmación.
HostListReceived: Recibida una lista de hosts desde el master server.
OnNetworkInstantiate:
Function OnNetworkInstantiate (info : NetworkMessageInfo) : void
Llamada en objetos que han sido instanciados en red con Network.Instantiate. Esto es útil para deshabilitar o habilitar componentes de objetos los cuales han sido instanciados y su comportamiento depende de si ellos son de propiedad local o remota.
OnSerializeNetworkView:
function OnSerializeNetworkView (stream : BitStream, info : NetworkMessageInfo) : void
Usada para personalizar la sincronización de variables en un script controlado por una network view. Esto es automáticamente determinado si las variables que han sido serializadas deben ser enviadas o recibidas.
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í:
47. CLASE MONOBEHAVIOUR (VII)
OnBecameVisible:
function OnBecameVisible () : void
Se llama a esta función cuando el renderer se convierte en visible por alguna cámara. Este mensaje se envía a todos los scripts relacionados con el renderer. Esta función y su opuesta –OnBecameInvisible- son útiles para evitar cómputos que son sólo necesarios cuando el objeto es visible.
OnBecameInvisible:
function OnBecameInvisible () : void
Es llamada cuando el renderer ya no es visible por ninguna cámara.
OnLevelWasLoaded:
function OnLevelWasLoaded (level : int) : void
Esta función es llamada después de que un nuevo level ha sido cargado. El parámetro level de la función es el level que ha sido cargado. Si quiere ver el índice de levels de su juego, use el menú File=>Build settings.
OnEnable:
function OnEnable () : void
Es llamada cuando el objeto pasa a estar habilitado y activo.
OnDisable:
function OnDisable () : void
Es llamada cuando el objeto se convierte en deshabilitado o inactivo. También cuando el objeto es destruido y puede ser usada la función para procesos de limpieza. Cuando los scripts son recargados después de que la compilación haya acabado, OnDisable se llamará seguida por OnEnable después de que el script haya sido cargado.
OnDestroy:
function OnDestroy () : void
Es llamada cuando el MonoBehaviour (script) es destruido. Sólo puede ser llamada para gameobjects que previamente hayan estado activos.
OnPreCull:
function OnPreCull () : void
Es llamada antes de que la cámara deseche la escena. Culling es un proceso que determina qué objetos son visibles en la cámara, y OnPreCull es llamada justo antes de dicho proceso.
Esta function es llamada sólo si el script está vinculado con la cámara y está activado. Si queremos cambiar los parámetros de visión de la cámara (tal como fieldOfView) lo tendremos que hacer aquí. La visibilidad de los objetos de la escena se determinará en base a los parámetros de la cámara después de la función OnPreCull.
OnPreRender:
function OnPreRender () : void
Es llamada antes de que la cámara empiece a renderizar la escena. Sólo se llama si el script está vinculado a la cámara y activo.
Es importante comprender que si cambiamos con esta función los parámetros de visión de la cámara, como por ejemplo fieldOfView, sólo tendrán efecto el siguiente frame, por lo que hay que hacerlo mejor en la función OnPreCull, como hemos dicho antes.
OnPostRender:
function OnPostRender () : void
Es llamada después de que la cámara acaba de renderizar la escena, siempre que el script esté vinculado con la cámara y activo.
OnRenderObject:
function OnRenderObject () : void
Es llamada después de que la cámara renderiza la escena. Se diferencia de OnPostRender en que OnRenderObject es llamada para cada objeto que tenga un script con la función, sin importar si está vinculado a una cámara o no.
OnWillRenderObject:
function OnWillRenderObject () : void
Esta función es llamada una vez por cada cámara si el objeto es visible. Es llamada durante el proceso de culling (que podríamos traducir por elección o desechamiento), justo antes de renderizar todos los objetos seleccionados. Podría usarse por tanto esta función para crear texturas que pudieran actualizarse sólo si el objeto a renderizar es en realidad visible.
Con la tecnología de Blogger.
BUSCADOR
PÁSATE POR EL FORO
API DE UNITY
TEMAS
- 00_INTRODUCCION (3)
- 01_CLASE OBJECT (3)
- 02_ESTRUCTURA VECTOR3 (4)
- 03_CLASE TRANSFORM (7)
- 04_CLASE RIGIDBODY (8)
- 05_CLASE COLLIDER (2)
- 06_CLASE MESHCOLLIDER (1)
- 07_CLASE CHARACTERCONTROLLER (3)
- 08_CLASE RENDERER (2)
- 09_CLASE MESHFILTER (1)
- 10_CLASE JOINT (2)
- 11_CLASE HINGEJOINT (2)
- 12_CLASE SPRINGJOINT (1)
- 13_CLASE CHARACTERJOINT (1)
- 14_CLASE BEHAVIOUR (1)
- 15_CLASE MONOBEHAVIOUR (9)
- 16_CLASE CAMERA (6)
- 17_CLASE LIGHT (3)
- 18_CLASE MATERIAL (3)
- 19_CLASE CUBEMAP (1)
- 20_CLASE RENDERTEXTURE (3)
- 21_CLASE PARTICLEEMITTER (3)
- 22_CLASE MESH (2)
- 23_CLASE GAMEOBJECT (6)
- 24_CLASE SHADER (1)
- 25_CLASE PHYSICMATERIAL (1)
- 26_CLASE COMPONENT (1)
- 27_CLASE GUIELEMENT (1)
- 28_CLASE GUITEXT (2)
- 29_CLASE GUITEXTURE (1)
- 30_CLASE GUI (8)
- 31_CLASE GUILAYOUT (4)
- 32_CLASE TEXTURE (1)
- 33_CLASE TEXTURE2D (2)
- 34_CLASE INPUT (4)
- 35_ESTRUCTURA BOUNDS (1)
- 36_CLASE COLLISION (1)
- 37_CLASE CONTROLLERCOLLIDERHIT (1)
- 38_CLASE DEBUG (1)
- 39_CLASE EVENT (3)
- 40_CLASE GIZMOS (1)
- 41_CLASE LIGHTMAPSETTINGS (1)
- 42_ESTRUCTURA MATHF (3)
- 43_CLASE PHYSICS (2)
- 44_ESTRUCTURA QUATERNION (1)
- 45_CLASE RANDOM (1)
- 46_ESTRUCTURA RAY (1)
- 47_ESTRUCTURA RAYCASTHIT (1)
- 48_ESTRUCTURA RECT (1)
- 49_CLASE RENDERSETTINGS (1)
- 50_CLASE SCREEN (1)
- 51_CLASE TIME (1)
- 52. CLASE YIELDINSTRUCTION (1)
- MONOGRAFICOS (2)
