Información actualizada sobre este proyecto
Este artículo pertenece a una serie que consiste en hacer un juego simple en primera persona acerca de encontrar objetos dentro de un laberinto. Es una de mis primeras series de cuando empecé el canal.
Ahora he mejorado mucho este proyecto y puedes descargar el código fuente para importarlo en tu propio proyecto de Unity. Algún día vamos a hacer un remake de esta serie, suscríbete a mi canal para estar al tanto del nuevo contenido sobre Blender, Unity y programación.
Sígueme en itch.io y descarga el código fuente de este proyecto
PUEDES TESTEAR ESTE JUEGO AQUÍ. TAL VEZ TARDE UN POCO EN CARGAR
🔻
MOVEMENT: WASD CAMERA LOOK: MOUSE
EL ARTÍCULO ANTIGUO CONTINUA AQUÍ
Introducción
En esta serie vamos a crear un juego simple en Unity desde cero, la idea es observar las herramientas que tiene el motor para la creación de videojuegos.
La serie actualmente cuenta con 13 videos en el canal y 11 artículos en los que se detalla paso a paso lo que se hace en cada video, de esa forma se puede ver rápidamente en formato video y analizar las partes de interés en detalle consultando los artículos.
Antes de empezar te invito a visitar y suscribirte a mi canal para encontrar más videos sobre programación y diseño 3D.
Ir al canal
Características del proyecto
En principio vamos a crear un juego en primera persona para la plataforma Windows, el escenario será un laberinto con varias puertas de entrada y salida.
El personaje empezará en una de las puertas y deberá encontrar un objeto oculto en el laberinto que aparecerá aleatoriamente, cuando lo encuentre deberá irse por una de las puertas.
Habrá un tiempo límite para cumplir el objetivo pero dentro del laberinto habrá objetos colectables que aumentarán el tiempo que el jugador dispone.
Lista de artículos y videos
#1 – Introducción.
Comenzamos un nuevo proyecto desde Unity HUB y hablamos un poco sobre el entorno de desarrollo. Importamos algunos elementos del paquete Standard Assets y de la tienda Asset Store de Unity. Armamos una escena simple utilizando las primitivas de Unity y aplicamos transformaciones. Creamos materiales. Colocamos el prefabricado de Standard Assets “FirstPersonCharacter” en la jerarquía. Se configuran el proyecto para compilar.
#2 – Importar Assets. Configurar Skybox.
Importamos los modelos 3D y texturas provistos en los links de descarga y los colocamos en la jerarquía de Unity. Agregamos las texturas a los materiales. Creamos Prefabs que son GameObjects prefabricados que pueden reutilizarse. Creamos un material y lo configuramos para utilizarlo como Skybox, con esto le cambiamos el aspecto al cielo de la escena.
Modelos 3D y Texturas
#3 – Tipos de Colliders. RigidBody.
Botón AddComponenet para agregar componentes a un GameObject. Distintos tipos de Colliders, en particular Box Collider, Sphere Collider y Mesh Collider. Comportamiento del personaje al entrar en contacto con los Colliders. Componente RigidBody y su relación con los Colliders. Comportamiento de Collider en modo Trigger.
#4 – Colocar al personaje en una posición aleatoria.
Armamos un sistema para colocar al personaje en un punto concreto del escenario. Creación de Tags o etiquetas. Creación del primer Script en C# que cumplirá la función de encontrar todos los objetos de la jerarquía que tengan un tag determinado, ordenarlos en un vector, seleccionar aleatoriamente uno de esos objetos y colocar al personaje en la posición de ese objeto.
Script GameControl con comentarios
#5 – Crear interfaz de usuario simple. Canvas.
Crear una interfaz gráfica simple con Canvas. Se hacen dos pantallas, una para el menú principal y otra para el juego. Debido a que el juego se resuelve en una escena se alternan las pantallas de la interfaz.
#6 – Programación de la interfaz de usuario.
Se programa la interfaz de usuario creada en el video anterior. Al pulsar el botón Start desde el menú, el juego comienza. Con la tecla escape regresamos al menú principal.
Script GameControl con comentarios
#7 – Timer para la cuenta regresiva.
Creamos un Timer en C#. Interacción entre Scripts, desde un Script ejecutamos métodos pertenecientes a otro.
Scripts GameControl y Timer con comentarios.
#8 – Crear, modelar y texturizar terreno en Unity.
Creación de terreno con relieve y texturas. Componente Terrain y herramientas.
Descargar texturas para el terreno
#9 – Colocar objeto en posición aleatoria del laberinto.
Estrategia para colocar un objeto en un punto aleatorio del laberinto.
Scripts GameControl, Timer y LabyrinthPiece con comentarios
#10 – Colocar colectables en posiciónes aleatorias del laberinto.
Colocar objetos colectables en Unity. Sistema de creción y destrucción de los colectables. Efecto al colectarlos.
Scripts GameControl, Timer, LabyrinthPiece y Clock con comentarios.
#11 – Especial desafío de programación para Halloween
Este video consiste en un desafío especial en el que vamos a agregar un poco de miedo al proyecto. En algún punto del laberinto habrá un pedestal especial, que contendrá los restos de Lucy. Si el personaje se encuentra con esto, Lucy aparecerá y lo perseguirá. Todo lo que se hace en este video no se utilizará en videos posteriores.
Click aquí para ver el planteo conceptual del desafío
Es un video bastante más largo de los demás debido a que se hacen muchas cosas. Importar Assets, configurar materiales y animaciones, Scripts.
GDT Halloween Pack
#12 – Interacción del personaje con puertas y pedestal
Creamos sistema de interacción para tomar la espada e interactuar con las puertas.
Actualmente he creado una mejor versión del sistema de interacción que está basada en la que hacemos aquí.
Ver nuevo sistema de interacción
Mi primer juego en Unity- Archivos del Video 12
#13 – Puntuación final. Guardar datos simples.
Sistema de puntuación que se integra a la interfaz gráfica. Guardado de información en el disco utilizando PlayerPrefs.