31. CLASE RENDERER (I)







Un render vendría a ser el proceso por el que un ordenador muestra una imagen. De ahí que sea incuestionable la importancia de esta clase dentro de Unity. Tanto los gameobjects como algunos componentes tiene una propiedad renderer a la que podemos acceder/modificar, o que incluso se puede deshabilitar para hacer dicho gameobject o componente invisible.


VARIABLES:

enabled:

var enabled : boolean


Hace el objeto visible (true) o invisible (false).


castShadows:

var castShadows : boolean


¿Proyecta sombras este objeto?


receiveShadows:

var receiveShadows : boolean


¿Recibe sombras este objeto?


material:

var material : Material


El material de nuestro objeto. Modificar esta variable sólo cambiará el material para este objeto. Si el material que asignamos a nuestro objeto está siendo usado para otros renders, se clonará el material compartido y se asignará una copia de dicho material para nuestro objeto.

La variable es de tipo Material,que estudiaremos en su momento, y que nos permite cambiar el color del objeto, su textura y la manera en que reacciona a la luz, entre otras propiedades.

Veamos un ejemplo sencillo. Le asignamos este script a la esfera:


renderer.material.color = Color.green;
renderer.material.shader = Shader.Find( "Transparent/Diffuse" );
renderer.receiveShadows = false;


Al darle al play, podemos observar el cambio de apariencia.


sharedMaterial:

var sharedMaterial : Material


Hace referencia al material que nuestro objeto comparte con otros. Modificar esta variabla cambiará la apariencia de todos los objetos que usen este material y las propiedades del mismo que estén almacenadas en el proyecto también, razón por la que no es recomendable modificar materiales retornados por sharedMaterial. Si quieres modificar el material de un renderer usa la variable “material” en su lugar.


sharedMaterials:

var sharedMaterials : Material[]


Devuelve un array con todos los materials compartidos de este objeto, a diferencia de sharedMaterial y material, que sólo devuelven el primer material usado si el objeto tiene más de uno. Unity soporta que un objeto use múltiples materiales.

Al igual que la variable anterior y por la misma razón, no es aconsejable modificar materiales devueltos por esta variable



materials:

var materials : Material[]


Devuelve un array con todos los materiales usados por el renderer.


bounds:

var bounds : Bounds


Es una variable de sólo lectura que indica los límites del volumen del renderer. A cada renderer Unity le asigna una caja invisible que contiene (que envuelve) al objeto y cuyos bordes están alineados con los ejes globales. De esta manera a Unity le resulta más sencillo hacer cálculos de desplazamiento y situación. Por ejemplo, renderer.bounds.center normalmente es más preciso para indicar el centro de un objeto que transform.position, especialmente si el objeto no es simétrico. Pensemos, para aproximarnos intuitivamente al concepto, en esas rosas que vienen dentro de cajas transparentes de plástico.

En cualquier caso, la estructura Bounds la estudiaremos más adelante.


lightmapIndex:

var lightmapIndex : int


El índice del lightmap aplicado a este renderer. El índice se refiere al array de lightmaps que está en la clase LightmapSettings. Un valor de 255 significa que no se ha asignado ningún lightmap, por lo que se usa el que está por defecto.

Una escena puede tener varias lightmaps almacenados en ella, y el renderer puede usar uno o varios. Esto hace posible tener el mismo material en varios objetos, mientras cada objeto puede referirse a un ligthmap diferente o diferente porción de un lightmap.


isVisible:

ar isVisible : boolean


Variable de sólo lectura que indica si el renderer es visible en alguna cámara.

Hay que tener presente que un objeto es considerado visible para Unity cuando necesita ser renderizado en la escena. Podría por lo tanto no ser visible por ninguna cámara, pero todavía necesitar ser renderizado (para proyectar sombras, por ejemplo).

POSTED BY UnityScripts
POSTED IN
DISCUSSION 0 Comments

Leave a Reply

Con la tecnología de Blogger.