El componente Sprite Renderer le permite a usted mostrar imágenes como Sprites para su uso en escenas 2D y 3D.
Agregue este a un GameObject vía el menú Components (Component > Rendering > Sprite Renderer o alternativamente, usted puede crear un GameObject directamente con un Sprite Renderer ya adjunto (menú: GameObject > 2D Object > Sprite).
Propiedad: | Función: |
---|---|
Sprite | El objeto sprite en renderizar. Los objetos Sprite pueden ser generados de texturas al utilizar los ajustes Sprite en el Texture importer. |
Color | Vertex color del mesh renderizado. |
Flip | Volteé el sprite en los planos X o Y. |
Material | Material utilizado para renderizar el sprite. |
Sorting Layer | El layer (capa) utilizado para definir la prioridad overlay (sobrepuesta) durante el renderizado. |
Order In Layer | La prioridad overlay (superposición) de este sprite dentro de su layer. Los números menores son renderizados primero los números subsiguientes superponen aquellos números menores. |
En gráficas 3D, la apariencia de un objeto va a variar de acuerdo a su iluminación y la posición con la cual es vista. En 2D, por contraste, una imagen es simplemente mostrada en pantalla sin ninguna transformación adicional que la posición básica, escala, y rotación. La posición de un sprite está dada en una coordenada 2D, por lo que no hay un concepto de “profundidad” o distancia de la cámara cuando se renderiza.
Sin embargo, todavía es muy importante tener una manera de determinar la prioridad de superposición de diferentes sprites (ie, qué sprites van a oscurecer otros cuando se crucen caminos). Por ejemplo, en un juego de manejo, un carro debería ser visto pasando sobren objetos planos en la superficie de la carretera. Unity utilice el concepto de sorting layers para permitirle dividir sprite en grupos para la prioridad de overlay (superposición). Sprite con un sorting layer menor en el orden será superpuesto por aquellos en una sorting layer mayor.
A veces, dos o más objetos en la misma sorting layer se pueden sobreponer (eg, dos personajes jugador en un juego de desplazamiento lateral). La propiedad order in layer se puede utilizar para aplicar prioridades consistentes a sprites en la misma layer (capa). Al igual que con sorting layers, la regla es que los números menores se renderizan primero y pueden ser oscurecidos por los números mayores renderizados después. Ver la página del layer manager para detalles acerca de la edición de sorting layers. Si los sorting layers no se utilizan, un sorting estándar basado en profundidad se puede utilizar.
Un Sprite Renderer utiliza la textura proporcionada en la propiedad Sprite pero utiliza el shader y otras propiedades de la propiedad Material (esto en realidad se logra utilizando un MaterialPropertyBlock detrás de escenas). Esto significa que usted puede utilizar el mismo material para renderizar diferentes sprites sin preocuparse acerca de qué textura está asignada al material.
El sprite es renderizado en un mesh que utiliza posición, color y UV en cada vertex (vértice) pero ningún vector normal. Si su material requiere vectores normales entonces usted los puede calcular utilizando un vertex shader (ver la página de Ejemplos Surface Shader para más detalles).
Los shaders por defecto utilizados para sprites son:
Sprites/Default - un simple alpha blended shader que no interactúa con luces en la escena.
Sprites/Diffuse - es un simple alpha-blended surface shader que sí interactúa con luces. Esto genera un vector normal que da hacia el frente (0,0,–1).
Mientras que los Sprites se pueden voltear al ajustar un transform.scale
negativo, esto tiene efectos secundarios de voltear los GameObjects hijo y también voltear los colliders, lo cual puede ser bastante intensivo para el rendimiento o algo que no se prefiere.
La característica flipping (voltear) del SpriteRenderer proporciona una alternativa ligera que no afecta otros componentes o GameObjects. Simplemente voltea el sprite renderizado en los ejes X o Y y nada más.