1. ALGUNAS PECULIARIDADES DE UNITY


Antes de adentrarnos en la API de Unity, conviene saber que el engine admite tres lenguajes de programación para sus scripts: C#, Boo (una variante de Python) y algo muy parecido a Javascript, que es lo que vamos a usar nosotros en este curso.

Javascript es de los tres lenguajes indicados el más sencillo, y si bien algunos programadores con un cierto nivel aseguran que C# les ofrece más control, para nuestros fines y nivel con Javascript vamos más que sobrados.

Una de las cosas que choca de entrada en Unity para los que tuvieran un conocimiento previo de Javascript es la forma de declarar las variables. A diferencia del Javascript standard, en Unity hemos de declarar el tipo de la variable, un poco a la antigua usanza de C y C++. Por ejemplo, para declarar la variable numero de tipo int hariamos:

var numero : int;
numero = 10;

Y si la quisiéramos inicializar en la declaración, sería:

var numero : int = 10;

Esto es, palabra reservada "var" para indicar que vamos a declarar una nueva variable, el nombre que le demos a ésta seguido de dos puntos y el tipo de la variable declarada.


En otro orden de cosas, hemos de decir que la API de Unity está orientada a objetos y se compone de algo más de un centenar de clases, de las cuales una tercera parte más o menos están relacionadas entre sí en términos de herencia y el resto o son conjuntos de funciones auxiliares (clase tiempo, de funciones matematicas, etc) o bien meramente permiten funcionalidades especiales no contempladas en lo que podríamos llamar las clases troncales (clases relativas a la GUI o para conectarse a un servidor, por ejemplo)

Entendiendo que las clases que están vinculadas entre sí son a su vez las que nos pueden dar una idea más precisa del mecanismo de funcionamiento de Unity, son con vuestro permiso -y con alguna excepción que iremos haciendo- por las que me gustaría empezar. Y ya que -salvo error- nadie se ha tomado la molestia de hacer un esquema del sistema de herencia de estas clases, me tomé la libertad de hacerlo yo.

Está incompleto, ya que una veintena de clases de las que estuve mirando cuando estaba llevando a cabo la traducción no me parecieron demasiado importantes, o por lo menos no a estas alturas, pero en esencia este sería el arbolito de clases con que nos va a tocar lidiar durante una buena temporada.





Para agrandar la imagen pulsa AQUÍ


Recomiendo imprimir este esquema, ya que lo vamos a usar de referencia para, por ejemplo, saber qué funciones hereda una determinada clase, o qué clase tiene un atributo que es una instancia de otra clase. Por experiencia -poca, pero experiencia al cabo- os digo que o tenéis una referencia a mano o todo os acabará sonando igual y al final os quedaréis sin el que debiera ser vuestro objetivo, que no es aprenderse todas las funciones de memoria, sino entender por qué la API de Unity está estructurada de una manera y no de otra.

Como podréis observar, he incluido en el esquema las variables, funciones y funciones de clase (o atributos y métodos, si preferís la terminología de la POO) de la clase base (Object), la principal de las que derivan de aquélla (Component) y la que a su vez hereda de ésta y es heredada por otro número de clases. Esto nos permite, como decía antes, seguir la pista a las variables y funciones heredadas por -pongamos un ejemplo- la clase Camera, que hereda de Behaviour y por tanto también de Component y por último de Object. Así, podemos presuponer que esto es válido:

var camaraDeSeguridad : Camera;
camaraDeSeguridad.name = "Mi camara";

Esto es, nuestro objeto camera debería haber heredado una variable name de la clase Object. Teniendo a mano el esquema nos podemos evitar andar rebuscando por el manual de referencia.

Y con esto finalizamos esta lección. Para la próxima nos tocará ya abrir Unity.

POSTED BY UnityScripts
POSTED IN
DISCUSSION 8 Comments

8 Responses to : 1. ALGUNAS PECULIARIDADES DE UNITY

  1. Oscar says:

    Hombre he quedado fascinado con tu blog, esto es justo lo que queria ver

  2. Anónimo says:

    Amigo este blog es flipante. Te voy a recomendar. Se nota k has echo un faenon.

  3. the_cage says:

    Gracias por todo.

  4. Anónimo says:

    Un trabajo y dedicación admirable, gracias amigo

  5. Unknown says:

    Excelente amigo te recomendare!!! otra duda, tu diagrama no se ve muy bien.. solo eso saludos!

  6. Anónimo says:

    Los tres lenguajes de programación al final son para gustos, debido a que son de alto nivel e interpretados, no hacen ninguna diferencia al respecto respecto a rendimiento u control de una aplicación en general, y para tener un verdadero control tocaría lidiarnos con C++, que es de medio nivel y compilado. Solo que algunos se creen que son programadores por que usan el Script de C#.

  7. Anónimo says:

    Estoy empezando ahora con esto y amigo, tengo que felicitarte por el trabajo que te llevó en su día hacer este blog, está todo muy bien explicado. Muchisimas gracias

Leave a Reply

Con la tecnología de Blogger.