12. CLASE TRANSFORM (III)






Vamos a explicar las variables que nos quedan en esta lección.


localScale:

var localScale : Vector3


Como su nombre indica, es una variable de tipo Vector3 que permite consultar o establecer la escala de un transform en relación con la de su padre. Obviamente, un transform con esta variable en 0,0,0 tendrá la misma escala que su padre.


parent:

var parent : Transform


Hace referencia al padre del transform (que es obviamente otro transform), y a través de esta variable se puede consultar y/o cambiar dicho padre.

Veamos primero de qué forma podemos consultar valores relativos al padre de nuestro transform: Nos vamos a Unity, arrastramos en la Jerarquía el cubo dentro de la cápsula, y a PortaScripts le borramos el script para que no nos dé errores. En Proyecto le damos doble click a miPrimerScript y escribimos lo que sigue:


Debug.Log(transform.parent.gameObject.name);


Arrastramos tras salvar el script dentro del cubo (que está dentro de la cápsula). Play.

Aparece el nombre de la cápsula,que es lo que pretendíamos. Fijaros cómo a través del operador punto le decimos al Unity (leyendo de derecha a izquierda) que busque el nombre del gameobject al que pertenece el transform que es el padre del transform del gameobject que hace la consulta (al que va vinculado el script) y lo imprima en pantalla.


Vamos ahora a darle un padre nuevo a nuestro cubo. Abrimos el script y, sin borrarla, desplazamos la declaración que habíamos escrito un par de renglones hacia abajo, y encima escribimos lo siguiente:


var nuevoPadre : Transform;

transform.parent = nuevoPadre;
Debug.Log(transform.parent.gameObject.name);//Esto ya lo teníamos escrito


Salvamos, y seleccionamos el cubo para que en el inspector quede expuesta la variable nuevoPadre. Arrastramos hasta ella la cámara principal desde la jerarquía y le damos al play. Nuestro cubo ha cambiado de padre.

Pensemos, llegados a este punto, que nuestro transform hijo tiene una posición, rotación y escala relativa con respecto a su padre. Si cambiamos su padre, éstas obviamente cambiarán.


root:

var root : Transform


Esta variable hace referencia al transform más alto de la jerarquía, por lo que guarda muchas similitudes con parent, pero referida al “parent de los parent” del que depende nuestro transform. Si éste tiene un padre sin padre, el resultado equivaldrá a parent. Si su padre tiene un padre que tiene un padre que tiene un padre, la variable irá escalando hasta llegar al último padre y devolverá su valor (o nos permitirá modificar dicho valor). Para el caso de que el objeto que invoca esta variable no tenga padre, lo que se devuelve no es null, sino el propio transform que la invoca.


childCount:

var childCount : int


Es meramente una variable de tipo int que indica el número de hijos que tiene un transform.


lossyScale:

var lossyScale : Vector3


Es esta una variable de tipo Vector3 que representa la escala global del objeto. Es una variable de sólo lectura, por lo que obviamente no podemos modificar la escala global (la local ya vimos que sí con localScale) asignando valores a esta variable.


Y con esto acabamos las variables y nos lanzamos a por las funciones, que también son unas cuantas.

POSTED BY UnityScripts
POSTED IN
DISCUSSION 1 Comment

One Response to : 12. CLASE TRANSFORM (III)

  1. Jordi says:

    Hola de nuevo!

    sigo leyendo... me parece que cuando explicas localScale, donde has puesto 0,0,0 debería ir 1,1,1

    Gracias de nuevo. Gran material!!

Leave a Reply

Con la tecnología de Blogger.