Objetivos
¿Qué es el Canvas?
Es el GameObject contenedor de todos los elementos de la Interfaz de Usuario (UI). Siempre para poder
visualizar cualquier elemento de la UI se necesitará tener un Canvas en jerarquía.
Canvas (EventSystem lo genera adicional al crear el Canvas, pero no es parte del Canvas)
Rect Transform, Canvas, Canvas Scaler (script component), Graphic Raycaster (script component), las
propiedades de estos elementos setean todos los elementos de UI.
Componente Canvas
1
OVERVIEW GAMEOBJECTS (INTERFAZ DE USUARIO) EN UNITY
Dibuja por encima de toda la escena cubriendo la pantalla, no está sobre ninguna cámara ni
ubicado en World Space, no le afecta la visualización de la UI ninguna posición de GameObject en
el espacio, ya la UI se renderizara por encima de la pantalla del juego y no depende de la cámara.
Pixel Perfect
o Renderiza el pixel tal cual existe para todos los elementos de UI (no aplica antialiasing,
es decir suavizado de dientes eb borde del dibujo).
Sort Order
o Ordena el orden de renderizado (visibilidad) de los diferentes Canvas para el caso de
que existan varios Canvas a la vez.
Target Display
o Selecciona una pantalla donde se rendirizará el Canvas para el caso de estar trabajando
con varias pantallas a la vez (se puede tener 8 cámara a la vez y sacar un Canvas para
cada pantalla).
2
OVERVIEW GAMEOBJECTS (INTERFAZ DE USUARIO) EN UNITY
Ejemplo:
El Canvas se dibuja sobre la cámara principal del juego, es decir se dibuja dentro del rango de esa
camara y siempre considerando el orden del layer (Order in Layer), se le debe especificar la cámara
sobre la cual se quiere renderizar el Canvas y dicho Canvas se ajustará a la proyección del tamaño
de la camara ya que este modo si depende de la cámara a diferencia del anterior modo.
3
OVERVIEW GAMEOBJECTS (INTERFAZ DE USUARIO) EN UNITY
o Pixel Perfect
Renderiza el pixel tal cual existe para todos los elementos de UI (no aplica
antialiasing, es decir suavizado de dientes eb borde del dibujo).
o Render Camera
Es la cámara sobre la cual se renderizara el Canvas.
o Plane Distance
Es la distancia proyectada entre la ubicación de cámara y la ubicación del
Canvas, si existe algún objeto en “Near Clipping Plane”, este se visualizará por
delante de la UI y todos sus elementos.
o Sorting Layer:
Debido a los elementos UI son Sprite y trabajan en un entorno de 2D y dos
dimensiones no se tiene profundidad, esa profundida se trabaja según los
Layers, por ello se requiere Sorting layer, lo cual permite establecer el orden de
renderizado de multiples Sprite en la camara. Siempre hay un SortingLayer por
defecto llamado "Default" a la que se agregan inicialmente todos los sprites.
Sort Order
o Ordena el orden de renderizado (visibilidad) de los diferentes Canvas para el caso de
que existan varios Canvas a la vez.
World Space
Convierte el Canvas a un comportamiento similar al GameObject (habiñita todas las propiedades del Rect
Transform como si convirtiera el componente Rect Transform a Transform) en el World Space (espacio 3D
del juego) y al cual se le puede aplicar transformaciones de Posición, Rotacion y Escala.
4
OVERVIEW GAMEOBJECTS (INTERFAZ DE USUARIO) EN UNITY
Por tanto, para los modos Screen Space – Overlay así como para Screen Space – Camera todas las
propiedades del componente Rect transform estarán deshabilitadas como sigue:
Pero para el modo World Space, se habilitarán todas las propiedades del componente Rect Transform y
podrá aplicársele transformaciones, esto se utiliza mayormente para realizar virtual o si queremos hacer
menues en el espacio.
o Event Camera
Es la cámara principal sobre la el Canvas generara lso eventos, es decir poner
interactiva la cámara para comunicarla con la UI.
o Sorting Layer:
Debido a los elementos UI son Sprite y trabajan en un entorno de 2D y dos
dimensiones no se tiene profundidad, esa profundida se trabaja según los
Layers, por ello se requiere Sorting layer, lo cual permite establecer el orden de
renderizado de multiples Sprite en la camara. Siempre hay un SortingLayer por
defecto llamado "Default" a la que se agregan inicialmente todos los sprites.
o Sort Order
Ordena el orden de renderizado (visibilidad) de los diferentes Canvas para el
caso de que existan varios Canvas a la vez.
5
OVERVIEW GAMEOBJECTS (INTERFAZ DE USUARIO) EN UNITY
Se encargará de representarlos pixeles (como queremos que se dibujen y vean esos pixeles, es decir que
se vean a tamaño normal o que se ajusten al tamaño de la pantalla) de todos los elementos de la UI que
existen dentro del canvas. Este depende del tipo de renderizado de la pantalla.
UI Scale Mode (activo en el modo Screen Space – Overlay y Screen Space - Camera): Representa
el tipo de escala que se quiere para todos los elementos de la UI.
o Scale With Screen Size (es la mayor mente usado en videojuegos para que sean multi
dispositivos o diferentes tamaños de pantallas): Que se escale con el tamaño de la
pantalla según se encuentre con diferentes tamaños la UI se valla ajustando.
o Constant Physical Size: Que se escale con el tamaño de la pantalla según se encuentre
con diferentes tamaños la UI se valla ajustando.
6
OVERVIEW GAMEOBJECTS (INTERFAZ DE USUARIO) EN UNITY
Si encontramos una
pantalla con DPI diferente
EventSystem (obligatorio)
o Transform (Component)
o EventSystem (Script Component): Sistema para detectar eventos
o StandAlone Input Module (Script Component): Para detector input para la plataforma.
Los eventos de entrada se propagan directamente a los objetos de VisualElement . La lógica varía
ligeramente según el tipo de evento y otros factores:
Se dice que los eventos se propagan porque cada padre del objeto objetivo puede interceptar un evento
antes de sus descendientes (fase de captura) o después de sus descendientes si no se detiene (fase
BubbleUp).
7
OVERVIEW GAMEOBJECTS (INTERFAZ DE USUARIO) EN UNITY
Todos los elementos de UI poseen un componente Rect Transform, al igual que todos los restantes
GameObject posee un Transform. Ambos tiene funcionalidades semejantes, por tanto en un GameObject
normal, el camponente de la transformación es el Transform, mienstra que en la UI es Rect Transform.
Parentesco
Cada vez que se crea algún elemento de la UI, si no existe un GameObject Canvas en la jerarquía este lo
crea dicho Canvas automáticamente (y queda como hijo del Canvas creado) y un EventSystem. Si ya existe
el Canvas al momento de crear un elemento UI, este elemento se agrega como hijo automáticamente de
dicho Canvas.
Es la herramienta que nos permitirá modificar la posición, escala y rotación de todos los elementos de UI.