
Hola habrozhiteli! La segunda edición de Unity in Action ha sido completamente rediseñada para presentarle nuevos enfoques e ideas que lo ayudarán a aprovechar al máximo Unity para el desarrollo de juegos. Se presta más atención al diseño de juegos bidimensionales, cuyos conceptos fundamentales el lector puede poner en práctica y construir un complejo juego de plataformas bidimensional. Este libro se puede llamar con seguridad una introducción a Unity para programadores profesionales. Joseph Hawking brinda a las personas con experiencia en desarrollo toda la información necesaria para ayudarles a aprender rápidamente una nueva herramienta y comenzar a crear nuevos juegos. Y es mejor aprender de proyectos específicos y tareas prácticas.
La unidad a menudo se presenta como un conjunto de componentes que no requieren programación, lo cual es fundamentalmente incorrecto. Para crear un juego exitoso, se necesita mucho: el excelente trabajo del artista, las habilidades de programación, una historia interesante, una jugabilidad fascinante, el trabajo amigable y coordinado del equipo de desarrollo. Y no debemos olvidar la visualización impecable y el trabajo de alta calidad en todas las plataformas, desde consolas de juegos hasta teléfonos móviles. Unity combina un potente motor, oportunidades de programación profesional y diseñadores creativos, lo que le permite realizar los proyectos más increíbles y ambiciosos.
¡Domina la Unidad y comienza a crear tus propios juegos más rápido!
Estructura del libro
El Capítulo 1 presenta Unity, un entorno de desarrollo de juegos multiplataforma. Aprenderá el sistema de componentes básicos que subyace en Unity y también aprenderá a escribir y ejecutar scripts básicos.
En el Capítulo 2, pasaremos a escribir un programa que demuestre movimiento en un espacio tridimensional, examinando simultáneamente temas como la entrada del mouse y el teclado. La determinación de la posición de los objetos en el espacio tridimensional y el funcionamiento de su rotación se explica en detalle.
En el Capítulo 3, convertiremos el programa de demostración en un juego de disparos en primera persona al demostrar el método de emisión del haz y los conceptos básicos de la inteligencia artificial. Se requiere emisión de rayos (creamos una línea en la escena y vemos con qué se cruza) en todas las versiones de los juegos.
El Capítulo 4 está dedicado a importar y crear recursos del juego. Este es el único capítulo del libro en el que el código no desempeña un papel central, ya que cada proyecto requiere modelos y texturas (básicas).
El Capítulo 5 te enseña cómo crear juegos bidimensionales en Unity. Aunque esta herramienta originalmente estaba destinada únicamente a crear gráficos tridimensionales, ahora es perfectamente compatible con gráficos bidimensionales.
El Capítulo 6 continúa la explicación de los principios de la creación de juegos bidimensionales utilizando un ejemplo de un juego de plataformas. En particular, implementamos controles, simulando el entorno físico y la animación del personaje.
El Capítulo 7 presenta la última funcionalidad de GUI en Unity. La interfaz de usuario es necesaria para todos los juegos, y las últimas versiones de Unity cuentan con un sistema mejorado de creación de interfaz de usuario.
En el capítulo 8 crearemos otro programa que demuestre movimiento en el espacio tridimensional, pero esta vez desde el punto de vista de un observador externo. La implementación de controles de terceros le dará una idea de las operaciones matemáticas clave en el espacio tridimensional, además, aprenderá a trabajar con personajes animados.
El Capítulo 9 muestra cómo implementar dispositivos y elementos interactivos en el juego. El jugador tendrá varias formas de usar estos dispositivos, incluyendo tocar directamente, tocar los disparadores dentro del juego o presionar el botón del controlador.
El Capítulo 10 enseña la interacción con la World Wide Web. Aprenderá cómo enviar y recibir datos utilizando tecnologías estándar como las solicitudes HTTP para recibir datos XML de un servidor.
En el capítulo 11, aprenderá cómo agregar sonido a los juegos. En Unity, tanto los efectos de sonido cortos como los fonogramas musicales largos son notablemente compatibles; ambas opciones de sonido son críticas para casi todos los videojuegos.
En el capítulo 12 reuniremos fragmentos de varios capítulos para obtener un juego al final. Además, aprenderá a programar controles que se manipulan con el mouse y guardar el juego.
Sobre el autor
Joseph Hawking vive en Chicago y desarrolla software para entornos interactivos. Trabaja para InContext Solutions. La primera edición de este libro fue escrita durante su tiempo en Synapse Games. También ha enseñado desarrollo de juegos en la Universidad de Illinois, en el Instituto de Artes de Chicago y en el Columbia College. Su sitio web es
www.newarteest.com .
Extracto 6.4.2. Empujar hacia arriba
Enseñemos al personaje a saltar. Para hacer esto, cuando presiona el botón Saltar, el personaje debe empujar hacia arriba. La velocidad de movimiento horizontal se edita directamente en el código, y con el movimiento vertical actuaremos de manera diferente para no interferir con la acción de la gravedad. El hecho es que varias fuerzas pueden afectar a un objeto al mismo tiempo, por lo que le agregamos fuerza hacia arriba. Pegue este código en el script de movimiento.
Presta atención al comando AddForce (). La fuerza ascendente se agrega al componente Cuerpo rígido en modo pulsado; El impulso es un impulso repentino, a diferencia de una fuerza de acción continua. En el código, dicha sacudida ocurre después de presionar la barra espaciadora. Al mismo tiempo, la gravedad continúa actuando sobre el personaje, por lo que, después del salto, describe un hermoso arco.
Pero, tal vez, ya ha prestado atención a un inconveniente, cuya eliminación ahora estamos trabajando.
6.4.3. Reconocimiento de superficie
El control de salto tiene un pequeño inconveniente: la capacidad de saltar en vuelo (cuando el personaje ya ha saltado o cuando cae). Presionar la barra espaciadora incluso en este caso dará un impulso, aunque esto no se puede hacer. El control de salto solo debería funcionar para un personaje parado en la plataforma. Entonces, debes aprender cómo determinar si un personaje está en la superficie.
Este código le roba al personaje la capacidad de saltar en el aire. Comprueba si hay un colisionador debajo del personaje y tiene en cuenta el resultado de la comprobación en la condición del salto. En primer lugar, se determinan los límites de la primitiva de colisión de nuestro personaje, y luego se buscan colisionadores superpuestos en el área con el mismo ancho directamente debajo de las piernas del personaje. El resultado de la verificación se almacena en la variable puesta a tierra y se usa en la declaración condicional.
6.5. Características adicionales de plataformas
Entonces, descubrimos los matices de la implementación de los movimientos, caminar y saltar del personaje. Complementaremos la demostración de nuestro juego con nuevas características ambientales.
DISEÑANDO NIVELES CON TILEMAP_ ______
En el marco del proyecto, el piso y las plataformas se crearon a partir de rectángulos blancos vacíos. La versión final del juego requiere gráficos más elaborados, pero es poco probable que la computadora pueda procesar una imagen del tamaño de un nivel completo. La mayoría de las veces este problema se resuelve utilizando la herramienta tilemap. Le permite diseñar imágenes según el principio de una cuadrícula. Así es como se ve.
Tenga en cuenta: el mapa está compuesto completamente por celdas pequeñas. Esto es lo que le permite cubrir toda la pantalla con una imagen sin recurrir a imágenes que son demasiado grandes.
La herramienta de mosaico oficial se ha agregado a las últimas versiones de la aplicación Unity. También puede usar bibliotecas externas, por ejemplo, Tiled2Unity, un sistema que importa mapas creados en el popular (y gratuito) editor Tiled.
6.5.1. Plataformas inclinadas y unilaterales.
Ahora en nuestro juego solo hay un piso ordinario y un bloque a través del cual puedes saltar. Pero hay otras opciones de plataforma. Los usaremos para diversificar la escena. Comencemos con la sección inclinada. Cree una copia del objeto Floor, asígnele el nombre Pendiente, ingrese los valores 0, 0, -25 en los campos de transformación de rotación y muévalo hacia la izquierda, asignando los valores de –3.47, –1.27, 0 a las coordenadas de la transformación de transformación.
Comienza a tocar la escena. En el proceso de movimiento, el personaje se desliza correctamente hacia arriba y hacia abajo. Pero debido a la gravedad, comienza a deslizarse hacia abajo y en un estado estático. Para resolver este problema, debe desactivar la simulación de la gravedad en los casos en que el personaje (a) está en la plataforma, (b) está en reposo. Afortunadamente, ya le hemos enseñado a reconocer superficies y podemos usar esto en un nuevo código. Necesita agregar solo una línea.
Después de editar el código de movimiento, el personaje comenzó a comportarse correctamente en superficies inclinadas. Ahora agregue la llamada plataforma unidireccional. Un personaje no solo puede pararse sobre él, sino también saltar a través de él. Cuando intentas saltar a través de una plataforma normal, el personaje golpeará su cabeza al respecto.
Las plataformas unilaterales a menudo se encuentran en los juegos, por lo que Unity tiene un medio para implementarlas. Si recuerda, antes de agregar el componente Platform Effector, desmarcamos la casilla de verificación Usar One Way. ¡Y ahora lo necesitamos! Una vez más, cree una copia del objeto Floor, asígnele el nombre Platform, ingrese los valores 10, 1, 1 en los campos para la escala y coloque el objeto resultante sobre el piso, especificando las coordenadas -1.68, 0.11, 0 para él. Y asegúrese de seleccionar la casilla de verificación Use One Way en la sección Efector de plataforma 2D.
El personaje podrá volar a través de la plataforma al saltar, pero evitará el movimiento hacia abajo. Solo se debe abordar un inconveniente. Se ilustra en la fig. 6.11. En Unity, el sprite de la plataforma se puede mostrar en la parte superior del personaje (para que sea más fácil ver esto, establezca la variable jumpForce en 7. Puede editar la coordenada Z del personaje como en el capítulo anterior, pero esta vez lo haremos de manera diferente. El componente responsable de la representación sprites, hay un orden de clasificación que determina qué sprite se mostrará en la parte superior Seleccione el objeto Player y establezca el parámetro Order in Layer en la sección del Sprite Renderer en 1.
Ahora en la escena hay un fragmento inclinado del piso y una plataforma unidireccional. Pero hay otra opción inusual, que se implementa un poco más difícil que las plataformas que ya conoce. Veamos cómo se hace esto.
6.5.2. Plataformas móviles
La tercera versión del género inusual, común en los juegos de plataformas, es plataformas móviles. Para agregar una plataforma de este tipo a nuestro juego, primero necesitarás escribir un nuevo guión que controle sus movimientos y, en segundo lugar, editar el guión para el movimiento del personaje. En el nuevo escenario, la plataforma se moverá entre dos puntos: inicio y fin. Cree un script C # llamado MovingPlatform y agregue el siguiente código.
DIBUJO DE GIZMOS PERSONALIZADOS _________________________________________
La mayor parte del código que se escribe en el proceso de lectura de un libro programa lo que sucede en los juegos. Pero los scripts de Unity le permiten influir en el editor incorporado. Muchos no saben que puede agregar menús y ventanas adicionales a Unity. Además, con su ayuda, se crean objetos auxiliares en la pestaña Escena, que se denominan contenedores dimensionales (artilugios).
Ya ha encontrado contenedores a granel. ¿Recuerdas los paralelepípedos verdes que designan colisionadores? Están integrados en Unity, pero nadie te molesta para escribir un script para tu propio contenedor general. Por ejemplo, en la pestaña Escena, cree una línea correspondiente a la trayectoria de la plataforma. Se muestra en la figura.

El código que dibuja esa línea es muy simple. En la parte superior del código que afecta a la interfaz de Unity, agregue la línea usando UnityEditor; (porque la mayoría de las funciones del editor están en este espacio de nombres en particular), pero esto no es obligatorio en este caso. Simplemente agregue este método a su script MovingPlatform:
... void OnDrawGizmos() { Gizmos.color = Color.red; Gizmos.DrawLine(transform.position, finishPos); } ...
Acerca de este código, es importante comprender lo siguiente. Primero, toda la acción se realiza dentro del método OnDrawGizmos (). Este es el nombre del sistema, al igual que los nombres de los métodos de Inicio y Actualización. En segundo lugar, agregamos dos líneas de código a este método: el primero establece el color de la línea y el segundo obliga a Unity a dibujar una línea desde donde se encuentra la plataforma hasta el punto objetivo.
Arrastre este script a la plataforma. ¡Comienza a reproducir la escena y verás que ahora la plataforma se mueve de lado a lado! Queda por editar el guión que controla los movimientos del personaje para asociarlo con una plataforma en movimiento. Haz los siguientes cambios.
Ahora el personaje que salta a la plataforma se moverá con ella. De hecho, todo se redujo a convertir al personaje en un hijo de la plataforma. Espero que recuerden que después de la formación de la relación jerárquica, el niño comienza a moverse después del padre. El método GetComponent () en el Listado 6.7 verifica si la superficie reconocida es una plataforma móvil. En el caso de un resultado positivo, ella se convierte en un antepasado en relación con el personaje; de lo contrario, el personaje está desconectado de cualquier antepasado.
Pero hay un problema. El personaje hereda de la plataforma y la transformación de escala, que afecta su tamaño. La situación puede corregirse mediante la transformación inversa (reducción de la escala del personaje, compensando el aumento del tamaño provocado por la plataforma).
Matemáticamente, la compensación de escala parece muy simple: se asigna 1 jugador dividido por la escala de la plataforma. Y cuando un poco más tarde la escala del jugador se multiplica por la escala de la plataforma, el resultado es 1. El único momento difícil en este caso es tener en cuenta el signo que determina la dirección del movimiento; tal vez recuerdes que dependiendo de eso, el personaje gira de lado a lado.
Entonces, hemos agregado una plataforma móvil al juego. Queda un toque final, y la versión demo estará completamente lista ...
»Se puede encontrar más información sobre el libro en
el sitio web del editor»
Contenidos»
ExtractoCupón de 20% de descuento para vendedores ambulantes -
UnityPD: el 7% del costo del libro se destinará a la traducción de nuevos libros de computadora, la lista de libros entregados a la imprenta está
aquí .