Skip to content
Editor Unity: crear script C#

Scripts y lenguajes de programación en Unity

Conociendo Unity3D (IV)
1. Iluminación en Unity 3D: tipos y propiedades
2. Videotutorial: efecto linterna (ejemplo de iluminación en Unity 3D)
3. Scripts y lenguajes de programación en Unity
4. Creación de scripts en Unity
5. Qué son los Prefab en Unity 3D
6. Video: ejemplo de uso de Prefab en Unity 3D
7. Sonidos en Unity 3D

¿Qué son los scripts en Unity 3D?

Ya hemos visto en anteriores tutoriales que podemos controlar el comportamiento de los GameObjects en Unity asignándoles componentes predefinidos y configurando sus propiedades a través de una interfaz gráfica. A pesar de su versatilidad, es posible que estos componentes sean insuficientes si queremos crear una mecánica de juego más personalizada o compleja.

Para conseguir ese objetivo, Unity nos ofrece la posibilidad de implementar scripts. Como ya vimos en un tutorial anterior, un script ó guión es un pequeño programa que podemos asociar a un GameObject como si se tratara de un componente más, proporcionándole una funcionalidad concreta que definimos nosotros.

A nivel de formato, los scripts no son más que ficheros de texto planos donde hemos escrito procedimientos y órdenes en alguno de los lenguajes de programación que Unity soporta, y que se ejecutan según lo hayamos configurado, por ejemplo al producirse un evento como un choque o un impacto, o cómo respuesta a un input del jugador.

Lenguajes de Programación para Unity

Como hemos dicho, estos scripts podemos escribirlos en alguno de los lenguajes que Unity soporta de forma nativa: C#, UnityScript y Boo. Puedes leer un poco más abajo una descripción de estos lenguajes.

Nosotros emplearemos C# en todos nuestros ejemplos y proyectos por varias razones:

  • Es el lenguaje que prima el propio motor de juegos Unity, ya que le da un soporte especial y basa toda su documentación en él.
  • Es que es el más utilizado, con mucha diferencia (ver gráfico abajo), por la comunidad de usuarios de Unity, lo que facilita luego el aprovechamiento de scripts creados por terceros en nuestros propios videojuegos.
  • Su similitud con Java, lo hacen muy fácil de utilizar por aquellos que trabajan en el entorno Android.

Porcentaje uso de lenguajes de programación en Unity

Fuente: http://blogs.unity3d.com/es/2014/09/03/documentation-unity-scripting-languages-and-you/

En cuanto a los otros dos lenguajes, Boo ha sido descontinuado a efectos prácticos en las nuevas versiones de Unity, ya que no pueden crearse scripts en este lenguaje directamente en el editor. Esta falta de soporte, debida según Unity al pequeño porcentaje de usuarios que lo utilizan, hace que sea mejor descartarlo si empiezas a trabajar con Unity.

Algo parecido podría ocurrirle en un futuro a Unity Scripting (una ‘versión’ particular de Javascript). Aunque más utilizado que Boo, está lejos de las cifras de C# y la falta de documentación oficial es una señal a tener en cuenta.

En resumen, si te estás iniciando en Unity, recomendamos utilizar C#  porque parece la apuesta más segura. Como ya dijimos, la disponibilidad de scripts creados por otros usuarios o por el propio fabricante del motor de juegos, nos puede facilitar mucho nuestra tarea, sobre todo si tenemos menor dominio de la programación. Si encontramos scripts que nos proporcionen funcionalidades parecidas, es relativamente sencillo adaptarlos, y partiremos de un código ya escrito y probado. También recordar que no estamos creando aplicaciones completas, sino pequeños programas, usualmente poco complejos, por lo que no necesitamos ser unos expertos de partida en este lenguaje.

Para los que no conozcan C# ni ningún lenguaje de similares características, y les resulte difícil comprender los ejemplos, además de toda la documentación disponible en la Web, disponemos de un curso de Introducción a Java. Dado que ambos son lenguajes orientados a objetos con sintaxis muy similares, esta formación es más que suficiente para empezar a programar scripts en Unity.

Vamos pues a mencionar algunas características básicas de estos lenguajes (fuente Wikipedia: C#, Javascript, Boo)

C#

Lenguaje de programación orientado a objetos, desarrollado y estandarizado por Microsoft como parte de su plataforma.NET.

  • Diseñado para la infraestructura de lenguaje común (estándar que implementa un entorno virtual para la ejecución de aplicaciones, escritas en diferentes lenguajes de alto nivel, para que puedan ejecutarse en múltiples plataformas de Microsoft).
  • Aunque forma parte de la plataforma .NET, ésta es una API, mientras que C# es un lenguaje de programación independiente diseñado para generar programas sobre dicha plataforma.
  • Existencia de compiladores en los marco de proyecto Mono-DotGNU, para el desarrollo de programas en diferentes plataformas, como Windows, Unix, Android, iOS, Windows Phone, Mac OS y GNU/Linux.
  • Su sintaxis básica deriva de C/C++ y utiliza el modelo de objetos de la plataforma .NET, similar al de Java, aunque incluye mejoras derivadas de otros lenguajes.

Para conocer los detalles de este lenguaje, puedes consultar por ejemplo esta Guía de Programación de C# de Microsoft

Javascript

Lenguaje de programación interpretado, y se define como orientado a objetos, basado en prototipos, imperativo, débilmente tipado y dinámico.

  • Se utiliza en su forma del lado del cliente (client-side), implementado como parte de un navegador web, permitiendo mejoras en la interfaz de usuario y páginas web dinámicas, aunque existe una forma de JavaScript del lado del servidor (Server-side JavaScript o SSJS).
  • JavaScript se diseñó con una sintaxis similar al C, aunque adopta nombres y convenciones del lenguaje de programación Java. Sin embargo Java y JavaScript no están relacionados y tienen semánticas y propósitos diferentes.
  • Todos los navegadores modernos interpretan el código JavaScript integrado en las páginas web. Para interaccionar con una página web se provee al lenguaje JavaScript de una implementación del Document Object Model (DOM).

En Unity realmente se emplea el lenguaje UnityScript, que aunque muy similar en sintaxis a Javascript, también tiene importantes diferencias. Por ejemplo, UnityScript implementa clases, mientras que Javascript maneja objetos pero no el concepto de clase como tal (aunque pueden ‘simularse’ en cierta forma).
No profundizaremos en este aspecto, porque como dijimos al inicio, nos basaremos solo en C#, pero si estás interesado en conocer mejor esas diferencias puedes consultar este interesante artículo.

Boo

Lenguaje de programación orientado a objetos, de tipos estáticos para la Common Language Infrastructure, con una sintaxis inspirada en Python y un énfasis en la extensibilidad del lenguaje y su compilador.

  • Inferencia de tipos, generadores, multimétodos, duck typing opcional (estilo de tipificación dinámica de datos), macros, clausuras, currificación (transformación de una función con varios argumentos en una función con un solo argumento) y funciones de primera clase.
  • Es software de código abierto, con licencia tipo MIT/BSD.
  • Boo se integra sin fisuras con Microsoft.NET y Mono.

Nota: como hemos comentado al principio, el lenguaje Boo está descontinuado en las nuevas versiones de Unity, al que ya no ofrece soporte. Lo incluimos de todas maneras como referencia, por haberse utilizado en versiones anteriores.

En el próximo tutorial veremos como podemos crear nuestros scripts en Unity y algunas características básicas de los mismos.

 

 

Volver arriba
Esta web usa cookies para su correcto funcionamiento. No hay cookies de publicidad, aunque algunos de los contenidos mostrados (videos o documentos insertados) están alojados en servicios externos (Youtube, Vimeo, Box...) que sí pueden implementar sus propias cookies. También se ha incluido en pruebas un Agente AI que incluye sus propias cookies   
Privacidad