52. CLASE CAMERA (III)









rect:


var rect : Rect


Establece qué parte de la pantalla esta la cámara renderizando. Dicha parte de la pantalla es fijada a través de una instancia de la estructura Rect, en coordenadas normalizadas. Por coordenadas normalizadas nos referimos a que los valores en el rango del rect irán de 0,0 (izquierda,abajo) a 1,1 (derecha,arriba)

Así, si queremos que la cámara a la que vinculamos el script renderice toda la pantalla, meramente haremos lo siguiente. Editamos MiSegundoScript (que es el que tenemos vinculado a Camara 2) y escribimos:


camera.rect = Rect (0, 0, 1, 1);


Tratándose de coordenadas normalizadas, lo que estamos pidiéndole aquí a Unity es que lo que esté captando la cámara 2 se nos vea en el rectángulo que le pasamos a la variable rect, y que en este caso ocupa toda la pantalla (de 0,0 a 1,1)

Si queremos que lo que capta la cámara dos se nos vea en la esquina superior derecha de la pantalla, calcularíamos estas coordenadas:


0,5: Corresponde al eje horizontal del primer punto, donde 0 sería izquierda y 1
derecha.
0,5: Corresponde al eje vertical del primer punto, donde 0 sería abajo y 1 arriba.
El primer punto de nuestro rectángulo, pues, estaría justo en el centro de la
pantalla.
1: Corresponde al eje horizontal del segundo punto.
1: Y este es el eje vertical del segundo punto. El segundo punto del rectántulo,
por lo tanto, está justo en el vértice derecho superior.


Así que podemos rectificar el script anterior, de la manera indicada:


camera.rect = Rect (0.5, 0.5, 1, 1);


De esta manera, lo que esté grabando cámara dos queda relegado al recuadro superior derecho y, para el resto de la pantalla, entra en acción la cámara principal, que ya vimos que por profundidad (depth) es la siguiente en la lista de prioridad. Debería quedar algo parecido a esto:



Pero, ¿qué sucedería si no hubiera ninguna cámara más?. Probémoslo. Seleccionamos Main Camera y en el inspector desmarcamos el check box que aparece junto al componente camera. Volvemos a darle al play, y observaremos que la parte de pantalla no incluida en el rectángulo aparece en negro, tal como se muestra a continuación:




pixelRect:

var pixelRect : Rect


Indica/establece qué parte de la pantalla esta la cámara renderizando, pero a diferencia de rect, no lo indica en coordenadas normalizadas, sino en píxeles.

Por lo tanto, este script sería el equivalente al anterior:


camera.pixelRect = Rect (Screen.width/2, Screen.height/2, Screen.width,
Screen.height);



pixelWidth:

var pixelWidth : float


Indica la anchura de la cámara en píxeles. (Sólo lectura).


pixelHeight:

var pixelHeight : float


Y esta variable indica la altura de la cámara en píxeles(sólo lectura)



velocity:

var velocity : Vector3


Variable de sólo lectura que indica la velocidad de la cámara en el espacio global.

POSTED BY UnityScripts
POSTED IN
DISCUSSION 1 Comment

One Response to : 52. CLASE CAMERA (III)

  1. Una observación:

    La estructura Rect se define por los valores: x, y, width, height.
    Por lo tanto, si quiero que la cámara renderice el sector superior derecho de la pantalla, los valores a usar deberían ser:

    camera.rect = Rect (0.5, 0.5, 0.5, 0.5);

    Sin embargo, el resultado es el mismo si escribimos:

    camera.rect = Rect (0.5, 0.5, 10, 10);

Leave a Reply

Con la tecnología de Blogger.