{"id":87398,"date":"2026-05-21T17:42:30","date_gmt":"2026-05-21T22:42:30","guid":{"rendered":"https:\/\/niixer.com\/?p=87398"},"modified":"2026-05-21T17:42:31","modified_gmt":"2026-05-21T22:42:31","slug":"desarrollo-del-videojuego-the-four-trials-en-unity-paso-a-paso","status":"publish","type":"post","link":"https:\/\/niixer.com\/index.php\/2026\/05\/21\/desarrollo-del-videojuego-the-four-trials-en-unity-paso-a-paso\/","title":{"rendered":"Desarrollo del videojuego \u201cThe Four Trials\u201d en Unity: paso a paso"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Introducci\u00f3n<\/h2>\n\n\n\n<p>El desarrollo de videojuegos se ha convertido en una de las \u00e1reas m\u00e1s importantes del entretenimiento digital, permitiendo crear experiencias interactivas mediante herramientas como Unity. En este art\u00edculo se presenta el proceso de creaci\u00f3n del videojuego <strong>\u201cThe Four Trials\u201d<\/strong>, un proyecto desarrollado en tercera persona que incluye diferentes escenarios, selecci\u00f3n de personajes, temporizador y recolecci\u00f3n de objetos.<\/p>\n\n\n\n<p>Para el desarrollo del proyecto se utilizaron recursos y herramientas como <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/sketchfab.com?utm_source=chatgpt.com\">Sketchfab<\/a> para algunos modelos 3D, <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/metaperson.avatarsdk.com\/?utm_source=chatgpt.com\">MetaPerson Creator<\/a> para la creaci\u00f3n de personajes, <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/www.mixamo.com?utm_source=chatgpt.com\">Mixamo<\/a> para las animaciones y Blender para la organizaci\u00f3n de texturas y modelos.<\/p>\n\n\n\n<p>A continuaci\u00f3n, se mostrar\u00e1 paso a paso el proceso de creaci\u00f3n e implementaci\u00f3n de los diferentes elementos del videojuego dentro de Unity.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Paso A Paso<\/h2>\n\n\n\n<p>Para el desarrollo del videojuego <strong>\u201cThe Four Trials\u201d<\/strong> se utiliz\u00f3 Unity en su versi\u00f3n <strong>6.4<\/strong>, empleando una plantilla de proyecto 3D con el fin de trabajar escenarios, personajes y mec\u00e1nicas en tercera persona.<\/p>\n\n\n\n<p>Una vez instalado Unity Hub y la versi\u00f3n correspondiente del motor, se cre\u00f3 un nuevo proyecto seleccionando la opci\u00f3n <strong><a href=\"https:\/\/niixer.com\/?s=3D+Core\" type=\"link\" id=\"https:\/\/niixer.com\/?s=3D+Core\">3D Core<\/a><\/strong>, asign\u00e1ndole el nombre <em>The Four Trials<\/em>. Esta configuraci\u00f3n permiti\u00f3 disponer de las herramientas necesarias para la construcci\u00f3n del entorno, la iluminaci\u00f3n y la integraci\u00f3n de modelos 3D dentro del videojuego.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Importaci\u00f3n del paquete Starter Assets \u2013 Third Person Controller<\/h2>\n\n\n\n<p>Despu\u00e9s de crear el proyecto, se import\u00f3 el paquete <strong><a href=\"https:\/\/niixer.com\/?s=Starter+Assets\" type=\"link\" id=\"https:\/\/niixer.com\/?s=Starter+Assets\">Starter Assets<\/a> \u2013 Third Person Controller<\/strong>, el cual proporciona un controlador b\u00e1sico en tercera persona junto con el sistema de c\u00e1mara y movimiento del personaje. Este paquete facilita la configuraci\u00f3n inicial del videojuego, permitiendo implementar desplazamiento, salto y seguimiento de c\u00e1mara sin necesidad de programar estas funciones desde cero.<\/p>\n\n\n\n<p>Para instalarlo, se accedi\u00f3 a la secci\u00f3n <strong>Window > Package Manager<\/strong>, donde posteriormente se descarg\u00f3 e import\u00f3 el paquete dentro del proyecto de Unity. Una vez finalizada la importaci\u00f3n, se agregaron los <a href=\"https:\/\/niixer.com\/?s=prefabs+\" type=\"link\" id=\"https:\/\/niixer.com\/?s=prefabs+\">prefabs <\/a>correspondientes del controlador en tercera persona dentro de la escena principal para comenzar con la configuraci\u00f3n del entorno y los personajes.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"584\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-350-1024x584.png\" alt=\"\" class=\"wp-image-87403\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-350-1024x584.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-350-300x171.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-350-768x438.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-350.png 1464w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Configuraci\u00f3n del escenario principal<\/h2>\n\n\n\n<p>El escenario principal del videojuego se cre\u00f3 utilizando los recursos incluidos en el paquete <strong>Starter Assets \u2013 Third Person Controller<\/strong>. Estos elementos permitieron construir el entorno inicial y configurar el sistema de movimiento en tercera persona.<\/p>\n\n\n\n<p>Adem\u00e1s, se importaron modelos y escenarios complementarios desde <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/sketchfab.com?utm_source=chatgpt.com\">Sketchfab<\/a>. Estos recursos ayudaron a mejorar el apartado visual y la ambientaci\u00f3n de las diferentes escenas del proyecto.<\/p>\n\n\n\n<p>Los modelos descargados en formato FBX se organizaron en carpetas dentro de la secci\u00f3n <strong><a href=\"https:\/\/niixer.com\/?s=Assets\" type=\"link\" id=\"https:\/\/niixer.com\/?s=Assets\">Assets<\/a><\/strong> de Unity. Tambi\u00e9n se almacenaron sus respectivas texturas para facilitar la administraci\u00f3n de los archivos.<\/p>\n\n\n\n<p>Finalmente, los modelos se arrastraron desde la carpeta Assets hacia la jerarqu\u00eda de la escena. Despu\u00e9s, se ajustaron la posici\u00f3n, escala y rotaci\u00f3n de cada objeto para adaptarlos correctamente al entorno del videojuego.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"989\" height=\"303\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-351.png\" alt=\"\" class=\"wp-image-87404\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-351.png 989w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-351-300x92.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-351-768x235.png 768w\" sizes=\"auto, (max-width: 989px) 100vw, 989px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Creaci\u00f3n e importaci\u00f3n de personajes<\/h2>\n\n\n\n<p>Para crear los personajes del videojuego se utiliz\u00f3 <a href=\"https:\/\/metaperson.avatarsdk.com\/?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">MetaPerson Creator<\/a>. Esta plataforma permite generar modelos humanos en 3D a partir de una fotograf\u00eda. Despu\u00e9s de generar el personaje, se descarg\u00f3 el modelo en formato FBX.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1011\" height=\"672\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-352.png\" alt=\"Pesonaje en MetaPerson Creato\" class=\"wp-image-87405\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-352.png 1011w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-352-300x199.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-352-768x510.png 768w\" sizes=\"auto, (max-width: 1011px) 100vw, 1011px\" \/><\/figure>\n\n\n\n<p>Luego, el archivo se abri\u00f3 en Blender para organizar correctamente las texturas. En la secci\u00f3n <strong>UV Editing<\/strong> se visualizaron las im\u00e1genes asociadas al modelo y posteriormente se exportaron a una carpeta junto con el archivo FBX.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"510\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-353-1024x510.png\" alt=\"UV Editing\" class=\"wp-image-87406\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-353-1024x510.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-353-300x149.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-353-768x382.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-353-1536x764.png 1536w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-353.png 1919w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Despu\u00e9s, el personaje se carg\u00f3 en <a href=\"https:\/\/www.mixamo.com?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">Mixamo<\/a> para a\u00f1adir las animaciones necesarias del videojuego. Una vez configuradas las animaciones, el modelo se descarg\u00f3 nuevamente en pose T.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"896\" height=\"537\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-356.png\" alt=\"Pesonaje en mixamo\" class=\"wp-image-87409\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-356.png 896w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-356-300x180.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-356-768x460.png 768w\" sizes=\"auto, (max-width: 896px) 100vw, 896px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1013\" height=\"499\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-357.png\" alt=\"Descargar en pose T\" class=\"wp-image-87410\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-357.png 1013w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-357-300x148.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-357-768x378.png 768w\" sizes=\"auto, (max-width: 1013px) 100vw, 1013px\" \/><\/figure>\n\n\n\n<p>Finalmente, se import\u00f3 el personaje en Unity arrastrando la carpeta completa hacia <strong>Assets<\/strong>. El modelo se agreg\u00f3 a la escena principal y se configur\u00f3 como tipo de animaci\u00f3n <strong>Humanoid<\/strong> para hacerlo compatible con el sistema Third Person Controller.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"542\" height=\"439\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-358.png\" alt=\"\" class=\"wp-image-87411\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-358.png 542w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-358-300x243.png 300w\" sizes=\"auto, (max-width: 542px) 100vw, 542px\" \/><\/figure>\n\n\n\n<p>Se a\u00f1adi\u00f3 el personaje <strong>Third Person Controller<\/strong> del paquete <strong>Starter Assets<\/strong>, ubicado en la carpeta <strong>Prefabs<\/strong>. Este controlador ya incluye la configuraci\u00f3n necesaria para el movimiento del personaje y el seguimiento de la c\u00e1mara en tercera persona.<\/p>\n\n\n\n<p>Despu\u00e9s, se ajustaron la posici\u00f3n y la escala del controlador dentro de la escena para adaptarlo correctamente al entorno del videojuego.<\/p>\n\n\n\n<p>Posteriormente, se arrastr\u00f3 el <strong>Avatar<\/strong> del modelo del robot hacia el personaje personalizado. De esta manera, el personaje conserv\u00f3 las animaciones y el sistema de movimiento configurado previamente.<\/p>\n\n\n\n<p>Finalmente, se desactiv\u00f3 el robot ubicado en la carpeta <strong>Geometry<\/strong> para evitar elementos duplicados dentro de la escena.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1023\" height=\"658\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-359.png\" alt=\"Robot prefab\" class=\"wp-image-87412\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-359.png 1023w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-359-300x193.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-359-768x494.png 768w\" sizes=\"auto, (max-width: 1023px) 100vw, 1023px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"410\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-360-1024x410.png\" alt=\"Personaje con el prefab configurado\" class=\"wp-image-87413\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-360-1024x410.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-360-300x120.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-360-768x308.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-360.png 1078w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Soluci\u00f3n del problema de c\u00e1mara en Unity<\/h2>\n\n\n\n<p>Durante el desarrollo del proyecto en Unity se present\u00f3 un inconveniente con el sistema de c\u00e1mara. La c\u00e1mara dej\u00f3 de seguir correctamente al personaje dentro de la escena.<\/p>\n\n\n\n<p>Al revisar la consola de Unity, aparecieron errores relacionados con scripts faltantes en los objetos <strong>cm<\/strong> y <strong>PlayerFollowCamera<\/strong>. Despu\u00e9s de analizar el problema, se identific\u00f3 que el paquete <strong>Cinemachine<\/strong> no estaba instalado en el proyecto. Este paquete es necesario para el funcionamiento de la c\u00e1mara en tercera persona del paquete Starter Assets.<\/p>\n\n\n\n<p>Para solucionar el error, se abri\u00f3 el <strong>Package Manager<\/strong> de Unity y se instal\u00f3 el paquete <strong>Cinemachine<\/strong> desde la secci\u00f3n <strong>Unity Registry<\/strong>.<\/p>\n\n\n\n<p>Una vez completada la instalaci\u00f3n, Unity restaur\u00f3 autom\u00e1ticamente los componentes faltantes de la c\u00e1mara. Finalmente, el sistema volvi\u00f3 a funcionar correctamente y la c\u00e1mara sigui\u00f3 nuevamente al personaje en tiempo real.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"562\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-361-1024x562.png\" alt=\"\" class=\"wp-image-87414\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-361-1024x562.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-361-300x165.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-361-768x422.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-361.png 1242w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Creaci\u00f3n de los otros personajes<\/h2>\n\n\n\n<p>Para a\u00f1adir m\u00e1s personajes al videojuego, se buscaron diferentes modelos en <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/www.mixamo.com?utm_source=chatgpt.com\">Mixamo<\/a>. Posteriormente, los modelos se descargaron junto con sus respectivas animaciones.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"670\" height=\"306\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-363.png\" alt=\"Otros personajes para el multiplayer\" class=\"wp-image-87417\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-363.png 670w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-363-300x137.png 300w\" sizes=\"auto, (max-width: 670px) 100vw, 670px\" \/><\/figure>\n\n\n\n<p>Despu\u00e9s de la descarga, se cre\u00f3 una carpeta para cada personaje con el fin de organizar correctamente los archivos del modelo y sus texturas antes de importarlos en Unity.<\/p>\n\n\n\n<p>Finalmente, todas las carpetas de los personajes se arrastraron hacia la carpeta <strong>Assets<\/strong> del proyecto. Esto permiti\u00f3 mantener una estructura organizada y facilitar la implementaci\u00f3n de los modelos dentro de las diferentes escenas del videojuego.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"196\" height=\"104\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-365.png\" alt=\"Carpeta Personajes\" class=\"wp-image-87419\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Creaci\u00f3n de interfaces y men\u00fa principal<\/h2>\n\n\n\n<h2 class=\"wp-block-heading\">Canvas de inicio<\/h2>\n\n\n\n<p>Las escenas del proyecto se encuentran almacenadas dentro de la carpeta <strong>Scenes<\/strong> ubicada en <strong>Assets<\/strong>. En esta ubicaci\u00f3n se cre\u00f3 una nueva escena llamada <strong>Intro<\/strong>, la cual se utiliz\u00f3 como pantalla principal del videojuego.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"951\" height=\"681\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-373.png\" alt=\"Creando escena\" class=\"wp-image-87432\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-373.png 951w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-373-300x215.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-373-768x550.png 768w\" sizes=\"auto, (max-width: 951px) 100vw, 951px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"244\" height=\"102\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-374.png\" alt=\"\" class=\"wp-image-87433\"\/><\/figure>\n\n\n\n<p>Despu\u00e9s de crear la escena, se a\u00f1adi\u00f3 un objeto <strong>Canvas<\/strong> para dise\u00f1ar la interfaz gr\u00e1fica del men\u00fa principal. Posteriormente, el Canvas se ajust\u00f3 al tama\u00f1o de la pantalla para adaptar correctamente todos los elementos de la interfaz.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"692\" height=\"755\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-375.png\" alt=\"Creaci\u00f3n de canvas\" class=\"wp-image-87434\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-375.png 692w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-375-275x300.png 275w\" sizes=\"auto, (max-width: 692px) 100vw, 692px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"377\" height=\"144\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-376.png\" alt=\"\" class=\"wp-image-87435\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-376.png 377w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-376-300x115.png 300w\" sizes=\"auto, (max-width: 377px) 100vw, 377px\" \/><\/figure>\n\n\n\n<p>Se escala al tama\u00f1o de la pantalla<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"583\" height=\"148\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-377.png\" alt=\"escalar canvas\n\" class=\"wp-image-87436\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-377.png 583w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-377-300x76.png 300w\" sizes=\"auto, (max-width: 583px) 100vw, 583px\" \/><\/figure>\n\n\n\n<p>Luego, se agreg\u00f3 un <strong>Panel<\/strong> dentro del Canvas y se cre\u00f3 una carpeta destinada a almacenar las im\u00e1genes utilizadas en el proyecto.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"410\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-378-1024x410.png\" alt=\"Panel de canvas\n\" class=\"wp-image-87437\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-378-1024x410.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-378-300x120.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-378-768x307.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-378.png 1277w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>A este panel se le va a agregar una imagen de fondo por lo que tambi\u00e9n se debe tener una carpeta para las im\u00e1genes<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"275\" height=\"126\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-379.png\" alt=\"\" class=\"wp-image-87438\"\/><\/figure>\n\n\n\n<p>Para colocar la imagen principal del men\u00fa, se a\u00f1adi\u00f3 un objeto <strong>Raw Image<\/strong>. Despu\u00e9s, en el panel <strong>Inspector<\/strong>, se arrastr\u00f3 la imagen correspondiente al apartado <strong>Texture<\/strong>. Finalmente, se presion\u00f3 la tecla <strong>T<\/strong> para ajustar la imagen al tama\u00f1o completo del Canvas.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"585\" height=\"263\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-380.png\" alt=\"\" class=\"wp-image-87439\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-380.png 585w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-380-300x135.png 300w\" sizes=\"auto, (max-width: 585px) 100vw, 585px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"400\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-381-1024x400.png\" alt=\"\" class=\"wp-image-87440\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-381-1024x400.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-381-300x117.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-381-768x300.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-381.png 1283w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><strong>Creaci\u00f3n de escenas con im\u00e1genes<\/strong><\/p>\n\n\n\n<p>Con el fin de evitar repetir el mismo procedimiento, se duplic\u00f3 la escena principal para crear nuevas pantallas, como la escena de controles y la escena de introducci\u00f3n.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"238\" height=\"169\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-382.png\" alt=\"\" class=\"wp-image-87441\"\/><\/figure>\n\n\n\n<p>Despu\u00e9s de copiar la escena, \u00fanicamente se reemplaz\u00f3 la imagen utilizada en el objeto Raw Image, permitiendo reutilizar la misma estructura del Canvas en las dem\u00e1s pantallas del videojuego.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"334\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-383-1024x334.png\" alt=\"\" class=\"wp-image-87442\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-383-1024x334.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-383-300x98.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-383-768x250.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-383.png 1518w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Creaci\u00f3n de botones<\/h2>\n\n\n\n<p>Una vez dise\u00f1ado el men\u00fa principal, se a\u00f1adieron botones desde la opci\u00f3n <strong>UI &gt; Button TextMeshPro<\/strong> dentro del Canvas.<\/p>\n\n\n\n<p>Se crearon tres botones principales:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Inicio<\/li>\n\n\n\n<li>Controles<\/li>\n\n\n\n<li>Salir<\/li>\n<\/ul>\n\n\n\n<p>Posteriormente, se modificaron los colores y textos de cada bot\u00f3n para adaptarlos al dise\u00f1o visual del videojuego.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"701\" height=\"231\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-384.png\" alt=\"Creaci\u00f3n de botones\" class=\"wp-image-87443\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-384.png 701w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-384-300x99.png 300w\" sizes=\"auto, (max-width: 701px) 100vw, 701px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Programaci\u00f3n de botones y navegaci\u00f3n entre escenas<\/h2>\n\n\n\n<p>Para programar las funciones de los botones, se cre\u00f3 una carpeta llamada <strong>Scripts<\/strong> dentro de <strong>Assets<\/strong>. Luego, se gener\u00f3 un script llamado <strong>MenuPrincipal<\/strong>, encargado de controlar la navegaci\u00f3n entre escenas y la opci\u00f3n para cerrar el videojuego.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"182\" height=\"24\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-388.png\" alt=\"\" class=\"wp-image-87452\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"652\" height=\"712\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-389.png\" alt=\"\" class=\"wp-image-87451\" style=\"aspect-ratio:0.9157611619150081;width:353px;height:auto\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-389.png 652w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-389-275x300.png 275w\" sizes=\"auto, (max-width: 652px) 100vw, 652px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"182\" height=\"24\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-388.png\" alt=\"\" class=\"wp-image-87450\"\/><\/figure>\n\n\n\n<p>El script se asign\u00f3 al objeto Canvas arrastr\u00e1ndolo directamente desde la carpeta Scripts hacia la escena.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"362\" height=\"311\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-391.png\" alt=\"\" class=\"wp-image-87454\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-391.png 362w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-391-300x258.png 300w\" sizes=\"auto, (max-width: 362px) 100vw, 362px\" \/><\/figure>\n\n\n\n<p>Despu\u00e9s, desde el apartado <strong>OnClick()<\/strong> de cada bot\u00f3n, se arrastr\u00f3 el Canvas para acceder a los m\u00e9todos creados en el script.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"367\" height=\"142\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-392.png\" alt=\"\" class=\"wp-image-87455\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-392.png 367w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-392-300x116.png 300w\" sizes=\"auto, (max-width: 367px) 100vw, 367px\" \/><\/figure>\n\n\n\n<p>El m\u00e9todo <strong>Siguiente()<\/strong> permiti\u00f3 avanzar a la siguiente escena del videojuego. Por otro lado, el m\u00e9todo <strong>Atras()<\/strong> permiti\u00f3 regresar a la escena anterior. Finalmente, el m\u00e9todo <strong>QuitarJuego()<\/strong> cerr\u00f3 la aplicaci\u00f3n al presionar el bot\u00f3n de salir.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"542\" height=\"404\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-394.png\" alt=\"\" class=\"wp-image-87458\" style=\"width:260px;height:auto\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-394.png 542w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-394-300x224.png 300w\" sizes=\"auto, (max-width: 542px) 100vw, 542px\" \/><\/figure>\n\n\n\n<p>Para habilitar correctamente el cambio entre escenas, se a\u00f1adieron todas las escenas del proyecto en la opci\u00f3n <strong>File &gt; Build Profiles<\/strong> de Unity. All\u00ed, cada escena recibi\u00f3 un n\u00famero de identificaci\u00f3n seg\u00fan el orden establecido dentro del proyecto.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"578\" height=\"185\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-395.png\" alt=\"\" class=\"wp-image-87459\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-395.png 578w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-395-300x96.png 300w\" sizes=\"auto, (max-width: 578px) 100vw, 578px\" \/><\/figure>\n\n\n\n<p>M\u00e9todo para el bot\u00f3n salir del juego<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"365\" height=\"135\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-398.png\" alt=\"\" class=\"wp-image-87462\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-398.png 365w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-398-300x111.png 300w\" sizes=\"auto, (max-width: 365px) 100vw, 365px\" \/><\/figure>\n\n\n\n<p>Los m\u00e9todos <strong>Siguiente()<\/strong> y <strong>Atras()<\/strong> se reutilizaron en los diferentes botones del videojuego, facilitando la navegaci\u00f3n entre todas las escenas creadas.<\/p>\n\n\n\n<p><strong>Escenas con sus botones<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"782\" height=\"436\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-400.png\" alt=\"\" class=\"wp-image-87464\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-400.png 782w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-400-300x167.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-400-768x428.png 768w\" sizes=\"auto, (max-width: 782px) 100vw, 782px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Selector de personajes<\/h1>\n\n\n\n<p>Para implementar el selector de personajes, se cre\u00f3 una nueva escena dentro del proyecto en Unity. En esta escena se a\u00f1adieron los tres personajes previamente importados al proyecto.<\/p>\n\n\n\n<p>Posteriormente, los modelos se organizaron dentro del escenario con el fin de visualizar correctamente cada personaje durante la selecci\u00f3n. Adem\u00e1s, se ajustaron elementos como posici\u00f3n, rotaci\u00f3n y escala para mejorar la presentaci\u00f3n visual dentro de la escena.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"290\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-416-1024x290.png\" alt=\"\" class=\"wp-image-87487\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-416-1024x290.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-416-300x85.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-416-768x218.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-416.png 1482w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Despu\u00e9s de agregar los personajes a la escena, se cre\u00f3 un script llamado <strong>SimpleCharacterSelector<\/strong>. Este script permiti\u00f3 cambiar entre los diferentes personajes disponibles y seleccionar uno antes de iniciar el juego.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"131\" height=\"22\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-417.png\" alt=\"\" class=\"wp-image-87488\"\/><\/figure>\n\n\n\n<p>El c\u00f3digo se encarg\u00f3 de mostrar un personaje a la vez mediante la activaci\u00f3n y desactivaci\u00f3n de objetos. Adem\u00e1s, incluy\u00f3 funciones para avanzar al siguiente personaje, regresar al anterior y cargar la escena del primer nivel al presionar el bot\u00f3n de jugar.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"160\" height=\"40\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-419.png\" alt=\"\" class=\"wp-image-87490\"\/><\/figure>\n\n\n\n<p>Posteriormente, se cre\u00f3 un objeto vac\u00edo dentro de la jerarqu\u00eda de la escena y se le asign\u00f3 el script arrastr\u00e1ndolo desde la carpeta <strong>Scripts<\/strong>. Despu\u00e9s, en el panel <strong>Inspector<\/strong>, se configur\u00f3 la cantidad de personajes y se arrastraron los modelos correspondientes al arreglo del script.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"392\" height=\"142\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-418.png\" alt=\"\" class=\"wp-image-87489\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-418.png 392w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-418-300x109.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-418-390x142.png 390w\" sizes=\"auto, (max-width: 392px) 100vw, 392px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"386\" height=\"157\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-420.png\" alt=\"\" class=\"wp-image-87491\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-420.png 386w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-420-300x122.png 300w\" sizes=\"auto, (max-width: 386px) 100vw, 386px\" \/><\/figure>\n\n\n\n<p>Para mejorar la visualizaci\u00f3n del selector, se desactivaron todos los personajes y \u00fanicamente se dej\u00f3 activo el primero al iniciar la escena.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Escenario del selector de personajes<\/h2>\n\n\n\n<p>Luego, se construy\u00f3 un escenario sencillo utilizando planos para crear el entorno donde se mostrar\u00edan los personajes seleccionables.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"631\" height=\"327\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-421.png\" alt=\"\" class=\"wp-image-87492\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-421.png 631w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-421-300x155.png 300w\" sizes=\"auto, (max-width: 631px) 100vw, 631px\" \/><\/figure>\n\n\n\n<p>Posteriormente, se a\u00f1adieron botones para navegar entre los personajes y confirmar la selecci\u00f3n. Cada bot\u00f3n recibi\u00f3 el m\u00e9todo correspondiente desde el apartado <strong>OnClick()<\/strong>, permitiendo ejecutar las funciones del script para avanzar, retroceder o iniciar el juego.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"433\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-422-1024x433.png\" alt=\"\" class=\"wp-image-87493\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-422-1024x433.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-422-300x127.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-422-768x325.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-422.png 1094w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Una vez completada la funcionalidad, se agreg\u00f3 una imagen al plano para utilizarla como material del escenario. Finalmente, se ajust\u00f3 la posici\u00f3n de los botones y los elementos de la interfaz para mejorar la presentaci\u00f3n visual del selector de personajes.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"867\" height=\"171\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-423.png\" alt=\"\" class=\"wp-image-87494\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-423.png 867w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-423-300x59.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-423-768x151.png 768w\" sizes=\"auto, (max-width: 867px) 100vw, 867px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Organizaci\u00f3n de modelos por niveles<\/h2>\n\n\n\n<p>Con el fin de mantener una estructura organizada dentro del proyecto en Unity, se cre\u00f3 una carpeta destinada a almacenar los modelos utilizados en cada nivel del videojuego.<\/p>\n\n\n\n<p>Dentro de esta carpeta se organizaron los escenarios, objetos y recursos 3D seg\u00fan el nivel correspondiente. Esta organizaci\u00f3n facilit\u00f3 la administraci\u00f3n de archivos y permiti\u00f3 localizar r\u00e1pidamente los modelos necesarios durante el desarrollo de cada escena.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"219\" height=\"51\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-424.png\" alt=\"\" class=\"wp-image-87495\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Nivel 1<\/h2>\n\n\n\n<p>Para la creaci\u00f3n del primer nivel del videojuego se descarg\u00f3 un modelo de laberinto desde <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/sketchfab.com\/search?features=downloadable&amp;q=maze&amp;type=models&amp;utm_source=chatgpt.com\">Sketchfab<\/a>. El modelo se import\u00f3 en Unity junto con sus respectivas texturas para integrarlo dentro de la escena.<\/p>\n\n\n\n<p>Despu\u00e9s de importar el escenario, se configuraron las colisiones del mapa. Para evitar que el personaje atravesara las paredes y el piso, se seleccionaron los objetos principales del laberinto y se les a\u00f1adi\u00f3 el componente <strong>Box Collider<\/strong> desde el panel <strong>Inspector<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"581\" height=\"348\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-425.png\" alt=\"laberinto\" class=\"wp-image-87496\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-425.png 581w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-425-300x180.png 300w\" sizes=\"auto, (max-width: 581px) 100vw, 581px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"382\" height=\"275\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-427.png\" alt=\"\" class=\"wp-image-87498\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-427.png 382w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-427-300x216.png 300w\" sizes=\"auto, (max-width: 382px) 100vw, 382px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">L\u00f3gica para el spawn del personaje seleccionado<\/h2>\n\n\n\n<p>Con el fin de cargar el personaje elegido previamente en el selector, se cre\u00f3 un objeto vac\u00edo dentro de la escena para utilizarlo como punto de aparici\u00f3n del jugador.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"165\" height=\"49\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-493.png\" alt=\"\" class=\"wp-image-87605\"\/><\/figure>\n\n\n\n<p>Posteriormente, el objeto <strong>SpawnPoint<\/strong> se posicion\u00f3 correctamente dentro del mapa para definir el lugar donde aparecer\u00eda el personaje al iniciar el nivel.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"98\" height=\"107\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-494.png\" alt=\"\" class=\"wp-image-87606\"\/><\/figure>\n\n\n\n<p>Despu\u00e9s, se cre\u00f3 un script llamado <strong>SpawnPlayer<\/strong>. Este script se encarg\u00f3 de obtener el personaje seleccionado mediante <strong>PlayerPrefs<\/strong> y generar autom\u00e1ticamente el modelo correspondiente en la posici\u00f3n del SpawnPoint.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"449\" height=\"210\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-495.png\" alt=\"\" class=\"wp-image-87607\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-495.png 449w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-495-300x140.png 300w\" sizes=\"auto, (max-width: 449px) 100vw, 449px\" \/><\/figure>\n\n\n\n<p>Finalmente, el script se asign\u00f3 al objeto <strong>GameManager<\/strong>, donde tambi\u00e9n se configuraron los personajes disponibles y el punto de aparici\u00f3n desde el panel Inspector.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"450\" height=\"525\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-496.png\" alt=\"\" class=\"wp-image-87608\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-496.png 450w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-496-257x300.png 257w\" sizes=\"auto, (max-width: 450px) 100vw, 450px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Implementaci\u00f3n de la moneda coleccionable<\/h2>\n\n\n\n<p>La moneda utilizada dentro del nivel fue obtenida desde la plataforma <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/sketchfab.com?utm_source=chatgpt.com\">Sketchfab<\/a>, utilizando un modelo 3D descargado para integrarlo como objeto coleccionable dentro del laberinto.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"403\" height=\"327\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-497.png\" alt=\"\" class=\"wp-image-87609\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-497.png 403w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-497-300x243.png 300w\" sizes=\"auto, (max-width: 403px) 100vw, 403px\" \/><\/figure>\n\n\n\n<p>Posteriormente, al modelo de la moneda se le agreg\u00f3 un componente <strong>Collider<\/strong>, con el fin de permitir la detecci\u00f3n de contacto entre el jugador y el objeto dentro de la escena.<\/p>\n\n\n\n<p>Despu\u00e9s, se activ\u00f3 la opci\u00f3n <strong>Is Trigger<\/strong> en el Collider. Esta configuraci\u00f3n permite que el jugador pueda atravesar la moneda mientras el sistema detecta autom\u00e1ticamente la colisi\u00f3n sin generar bloqueos f\u00edsicos en el movimiento.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"191\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-498-1024x191.png\" alt=\"\" class=\"wp-image-87610\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-498-1024x191.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-498-300x56.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-498-768x143.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-498.png 1057w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Finalmente, se cre\u00f3 un script encargado de detectar cu\u00e1ndo el jugador recoge la moneda. Al producirse la interacci\u00f3n, el sistema ejecuta la acci\u00f3n correspondiente para indicar que el nivel fue completado correctamente y permitir el avance dentro del videojuego.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"436\" height=\"81\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-499.png\" alt=\"\" class=\"wp-image-87611\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-499.png 436w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-499-300x56.png 300w\" sizes=\"auto, (max-width: 436px) 100vw, 436px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Implementaci\u00f3n del temporizador del nivel<\/h2>\n\n\n\n<p>Con el fin de agregar un mayor nivel de dificultad y control dentro de la partida, se implement\u00f3 un sistema de temporizador para medir el tiempo disponible o transcurrido durante el nivel.<\/p>\n\n\n\n<p>Inicialmente, se cre\u00f3 un objeto <strong>Canvas<\/strong> dentro de la escena de Unity, el cual se utiliza para mostrar elementos de interfaz gr\u00e1fica en pantalla. Dentro del Canvas, se agreg\u00f3 un objeto de tipo <strong>Text<\/strong> para visualizar el tiempo en tiempo real durante la partida.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"302\" height=\"71\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-500.png\" alt=\"\" class=\"wp-image-87612\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-500.png 302w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-500-300x71.png 300w\" sizes=\"auto, (max-width: 302px) 100vw, 302px\" \/><\/figure>\n\n\n\n<p>Posteriormente, se ajust\u00f3 la posici\u00f3n del texto dentro de la interfaz para que el temporizador fuera visible para el jugador mientras recorre el laberinto.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"337\" height=\"218\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-501.png\" alt=\"\" class=\"wp-image-87613\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-501.png 337w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-501-300x194.png 300w\" sizes=\"auto, (max-width: 337px) 100vw, 337px\" \/><\/figure>\n\n\n\n<p>Despu\u00e9s, se desarroll\u00f3 un script encargado de controlar el tiempo del juego. Este script actualiza constantemente el valor mostrado en pantalla y permite gestionar acciones relacionadas con el temporizador, como finalizar la partida o mostrar el tiempo restante.<\/p>\n\n\n\n<p>Finalmente, se cre\u00f3 un objeto GameObject dentro de la escena y se le agreg\u00f3 el script del temporizador anteriormente creado. Desde el panel Inspector, se puede modificar f\u00e1cilmente el tiempo asignado para cada nivel seg\u00fan la dificultad deseada del videojuego.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"452\" height=\"157\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-502.png\" alt=\"\" class=\"wp-image-87615\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-502.png 452w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-502-300x104.png 300w\" sizes=\"auto, (max-width: 452px) 100vw, 452px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Desarrollo del nivel 2: Recoger tesoros con enemigo persiguiendo<\/h2>\n\n\n\n<p>Para el desarrollo del segundo nivel se dise\u00f1\u00f3 un escenario enfocado en la exploraci\u00f3n y supervivencia, donde el jugador debe recoger diferentes tesoros mientras es perseguido por un enemigo dentro del mapa.<\/p>\n\n\n\n<p>Inicialmente, el escenario fue construido utilizando diferentes elementos b\u00e1sicos como planos, cajas, escaleras, puentes y otros objetos del entorno. Adem\u00e1s, se utilizaron componentes incluidos en el paquete <strong>Starter Assets<\/strong> de Unity para complementar la estructura y jugabilidad del nivel.<\/p>\n\n\n\n<p>Posteriormente, a cada objeto del escenario se le agreg\u00f3 el componente <strong>Mesh Collider<\/strong>, permitiendo que el personaje interact\u00fae correctamente con el entorno y evitando que atraviese paredes, plataformas, escaleras u otros obst\u00e1culos del mapa.<\/p>\n\n\n\n<p>Despu\u00e9s, se configur\u00f3 el sistema <strong>NavMesh<\/strong> sobre las superficies principales del escenario, incluyendo el suelo, puentes y escaleras. Esto permiti\u00f3 generar rutas de navegaci\u00f3n v\u00e1lidas para el enemigo y mejorar el desplazamiento dentro del nivel.<\/p>\n\n\n\n<p>Gracias a esta configuraci\u00f3n, el enemigo puede recorrer el escenario de manera autom\u00e1tica persiguiendo al jugador mientras este intenta recoger los tesoros necesarios para completar el nivel.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"623\" height=\"342\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-503.png\" alt=\"\" class=\"wp-image-87616\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-503.png 623w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-503-300x165.png 300w\" sizes=\"auto, (max-width: 623px) 100vw, 623px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Movimiento del enemigo<\/h2>\n\n\n\n<p>Para permitir que el enemigo persiguiera constantemente al jugador dentro del nivel 2, se implement\u00f3 un script utilizando el sistema <strong>NavMeshAgent<\/strong> de Unity. Este script se encarg\u00f3 de localizar autom\u00e1ticamente al jugador mediante la etiqueta <strong>Player<\/strong> y actualizar continuamente la posici\u00f3n de destino del enemigo para seguirlo dentro del escenario. Adem\u00e1s, se configur\u00f3 una velocidad de movimiento para aumentar la dificultad del nivel y generar mayor presi\u00f3n durante la recolecci\u00f3n de los objetos.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">using UnityEngine;<br>using UnityEngine.AI;<br><br>public class Enemy: MonoBehaviour<br>{<br>    private Transform player;<br>    private NavMeshAgent agent;<br><br>    void Start()<br>    {<br>        \/\/ Obtiene el NavMeshAgent<br>        agent = GetComponent&lt;NavMeshAgent>();<br><br>        \/\/ Velocidad del enemigo<br>        agent.speed = 0.5f;<br><br>        \/\/ Busca autom\u00e1ticamente el jugador<br>        player = GameObject.FindGameObjectWithTag(\"Player\").transform;<br>    }<br><br>    void Update()<br>    {<br>        \/\/ Persigue al jugador<br>        if (player != null)<br>        {<br>            agent.SetDestination(player.position);<br>        }<br>    }<br>}<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Implementaci\u00f3n de Animaciones para un Enemigo en Unity usando Mixamo<\/strong><\/h2>\n\n\n\n<p><strong>Para agregar animaciones a un enemigo en Unity se utiliz\u00f3 un modelo descargado desde Mixamo con una animaci\u00f3n de caminata incluida. El objetivo fue lograr que el personaje enemigo reprodujera autom\u00e1ticamente la animaci\u00f3n al iniciar el juego.<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Importaci\u00f3n del modelo animado<\/strong><\/h3>\n\n\n\n<p><strong>Primero se import\u00f3 el archivo <\/strong><strong>.fbx<\/strong><strong> descargado desde Mixamo al proyecto de Unity. Despu\u00e9s se configur\u00f3 correctamente el rig del personaje:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>En el Inspector se abri\u00f3 la pesta\u00f1a Rig.<\/strong><\/li>\n\n\n\n<li><strong>Se seleccion\u00f3:<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Animation Type: <\/strong><strong>Humanoid<\/strong><\/li>\n\n\n\n<li><strong>Avatar Definition: <\/strong><strong>Create From This Model<\/strong><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Finalmente se presion\u00f3 Apply.<\/strong><\/li>\n<\/ul>\n\n\n\n<p><strong>Esto permiti\u00f3 que Unity reconociera correctamente el esqueleto y las animaciones del personaje.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"532\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-504-1024x532.png\" alt=\"\" class=\"wp-image-87617\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-504-1024x532.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-504-300x156.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-504-768x399.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-504-1536x798.png 1536w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-504.png 1919w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Configuraci\u00f3n de la animaci\u00f3n y Animator Controller<\/strong><\/h3>\n\n\n\n<p><strong>En la pesta\u00f1a Animation del modelo se verific\u00f3 que la animaci\u00f3n estuviera correctamente importada y se activ\u00f3 la opci\u00f3n <\/strong><strong>Loop Time<\/strong><strong> para que la caminata se reprodujera continuamente.<\/strong><strong>Despu\u00e9s se cre\u00f3 un Animator Controller desde <\/strong><strong>Create &gt; Animator Controller<\/strong><strong>, nombrado como <\/strong><strong>EnemyAnimator<\/strong><strong>. Finalmente, la animaci\u00f3n importada desde Mixamo se arrastr\u00f3 a la ventana Animator para convertirla en el estado principal del enemigo.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"493\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-505-1024x493.png\" alt=\"\" class=\"wp-image-87618\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-505-1024x493.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-505-300x145.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-505-768x370.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-505-1536x740.png 1536w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-505.png 1907w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Asignaci\u00f3n del Animator al enemigo<\/strong><\/h3>\n\n\n\n<p><strong>El siguiente paso fue seleccionar el objeto enemigo en la jerarqu\u00eda y agregar el componente:<\/strong><\/p>\n\n\n\n<p><strong>Animator<\/strong><\/p>\n\n\n\n<p><strong>En el campo <\/strong><strong>Controller<\/strong><strong> se asign\u00f3 el archivo <\/strong><strong>EnemyAnimator<\/strong><strong>.<\/strong><\/p>\n\n\n\n<p><strong>Con esto, el enemigo comenz\u00f3 a reproducir autom\u00e1ticamente la animaci\u00f3n al iniciar el juego.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"476\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-506-1024x476.png\" alt=\"\" class=\"wp-image-87619\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-506-1024x476.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-506-300x139.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-506-768x357.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-506-1536x714.png 1536w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-506.png 1919w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Texturizaci\u00f3n del escenario del nivel 2<\/p>\n\n\n\n<p>Con el fin de mejorar la apariencia visual del segundo nivel, se cre\u00f3 una carpeta espec\u00edfica destinada al almacenamiento y organizaci\u00f3n de las texturas utilizadas dentro del escenario.<\/p>\n\n\n\n<p>En esta carpeta se importaron diferentes materiales y texturas para aplicarlas sobre los objetos del mapa, como paredes, pisos, puentes, escaleras y dem\u00e1s elementos del entorno.<\/p>\n\n\n\n<p>Posteriormente, las texturas fueron asignadas a los distintos objetos del escenario mediante materiales dentro de Unity, permitiendo darle una apariencia m\u00e1s detallada y realista al nivel.<\/p>\n\n\n\n<p>Gracias a este proceso de texturizaci\u00f3n, el escenario del nivel 2 obtuvo una mejor ambientaci\u00f3n visual, mejorando la experiencia del jugador durante la exploraci\u00f3n y la persecuci\u00f3n del enemigo.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"734\" height=\"187\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-507.png\" alt=\"\" class=\"wp-image-87620\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-507.png 734w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-507-300x76.png 300w\" sizes=\"auto, (max-width: 734px) 100vw, 734px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1010\" height=\"496\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-508.png\" alt=\"\" class=\"wp-image-87621\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-508.png 1010w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-508-300x147.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-508-768x377.png 768w\" sizes=\"auto, (max-width: 1010px) 100vw, 1010px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Implementaci\u00f3n del mar y zona de derrota<\/h2>\n\n\n\n<p>Con el fin de evitar que el jugador pudiera salir del escenario y adem\u00e1s mejorar visualmente el entorno del nivel 2, se decidi\u00f3 agregar una zona de mar alrededor del mapa.<\/p>\n\n\n\n<p>Inicialmente, se cre\u00f3 un objeto tipo <strong>Plane<\/strong> dentro de la escena de Unity y posteriormente se posicion\u00f3 alrededor del escenario para rodear completamente el mapa.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"164\" height=\"31\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-510.png\" alt=\"\" class=\"wp-image-87623\"\/><\/figure>\n\n\n\n<p>Despu\u00e9s, se a\u00f1adieron part\u00edculas para generar un mejor efecto visual y dar mayor sensaci\u00f3n de movimiento en el agua.<\/p>\n\n\n\n<p>Posteriormente, se implement\u00f3 un <strong>Shader<\/strong> personalizado encargado de crear el efecto visual del mar con movimiento din\u00e1mico, transparencia y simulaci\u00f3n de olas. Este shader controla diferentes propiedades visuales como color, espuma, transparencia y desplazamiento del agua para lograr una apariencia m\u00e1s realista.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"571\" height=\"367\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-511.png\" alt=\"\" class=\"wp-image-87624\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-511.png 571w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-511-300x193.png 300w\" sizes=\"auto, (max-width: 571px) 100vw, 571px\" \/><\/figure>\n\n\n\n<p>El archivo del shader fue descargado en formato <strong>.shader<\/strong> y posteriormente agregado dentro de la carpeta <strong>Assets<\/strong> del proyecto en Unity.<\/p>\n\n\n\n<p>Particulas<\/p>\n\n\n\n<p>C\u00f3digo shader<\/p>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p>Shader &#8220;Custom\/WaterShader&#8221;<br>{<br>Properties<br>{<br>_DeepColor(&#8220;Deep Water Color&#8221;, Color) = (0,0.25,0.8,1)<br>_ShallowColor(&#8220;Shallow Water Color&#8221;, Color) = (0.4,0.8,1,1)<br>_FresnelColor(&#8220;Fresnel Color&#8221;, Color) = (1,1,1,1)<br>_FresnelPower(&#8220;Fresnel Power&#8221;, Range(0.1,5.0)) = 2.0<br>_Transparency(&#8220;Transparency&#8221;, Range(0,1)) = 0.8<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    _Amplitude1(\"Amplitude1\", Range(0,1)) = 0.1\n    _Frequency1(\"Frequency1\", Range(0,10)) = 3\n    _Speed1(\"Speed1\", Range(0,10)) = 1\n    _Direction1(\"Direction1 (X,Z)\", Vector) = (1,0,0,0)\n\n    _Amplitude2(\"Amplitude2\", Range(0,1)) = 0.06\n    _Frequency2(\"Frequency2\", Range(0,10)) = 2\n    _Speed2(\"Speed2\", Range(0,10)) = 1.3\n    _Direction2(\"Direction2 (X,Z)\", Vector) = (0,1,0,0)\n\n    _Amplitude3(\"Amplitude3\", Range(0,1)) = 0.08\n    _Frequency3(\"Frequency3\", Range(0,10)) = 4\n    _Speed3(\"Speed3\", Range(0,10)) = 1.8\n    _Direction3(\"Direction3 (X,Z)\", Vector) = (0.7,0.7,0,0)\n\n    _FoamColor(\"Foam Color\", Color) = (1,1,1,1)\n    _FoamTexture(\"Foam Texture (R)\", 2D) = \"white\" {}\n    _FoamScale(\"Foam Texture Scale\", Range(0,10)) = 3.0\n    _FoamIntensity(\"Foam Intensity\", Range(0,2)) = 1.0\n\n    _SeaLevel(\"Base Sea Level\", Float) = 0.0\n}\n\nSubShader\n{\n    Tags { \"Queue\"=\"Transparent\" \"RenderType\"=\"Transparent\" }\n    Blend SrcAlpha OneMinusSrcAlpha\n    ZWrite Off\n\n    Pass\n    {\n        CGPROGRAM\n        #pragma vertex vert\n        #pragma fragment frag\n        #include \"UnityCG.cginc\"\n\n        struct appdata\n        {\n            float4 vertex : POSITION;\n            float3 normal : NORMAL;\n            float2 uv : TEXCOORD0;\n        };\n\n        struct v2f\n        {\n            float4 clipPos : SV_POSITION;\n            float3 worldPos : TEXCOORD0;\n            float3 normal : TEXCOORD1;\n            float2 uv : TEXCOORD2;\n            float waveHeight : TEXCOORD3;\n        };\n\n        float4 _DeepColor;\n        float4 _ShallowColor;\n        float4 _FresnelColor;\n        float _FresnelPower;\n        float _Transparency;\n\n        float _Amplitude1, _Frequency1, _Speed1; float4 _Direction1;\n        float _Amplitude2, _Frequency2, _Speed2; float4 _Direction2;\n        float _Amplitude3, _Frequency3, _Speed3; float4 _Direction3;\n\n        float4 _FoamColor;\n        sampler2D _FoamTexture;\n        float _FoamScale;\n        float _FoamIntensity;\n\n        float _SeaLevel;\n\n        float3 GerstnerWave(float3 pos, float amplitude, float frequency, float speed, float2 direction)\n        {\n            float theta = dot(direction, pos.xz) * frequency + (_Time.y * speed);\n            float sinT = sin(theta);\n            float cosT = cos(theta);\n\n            float3 offset;\n            offset.x = amplitude * cosT * direction.x;\n            offset.z = amplitude * cosT * direction.y;\n            offset.y = amplitude * sinT;\n\n            return offset;\n        }\n\n        v2f vert(appdata v)\n        {\n            v2f o;\n\n            float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz;\n            float3 worldNormal = normalize(mul((float3x3)unity_ObjectToWorld, v.normal));\n\n            float2 dir1 = normalize(_Direction1.xy);\n            float2 dir2 = normalize(_Direction2.xy);\n            float2 dir3 = normalize(_Direction3.xy);\n\n            float3 waveOff1 = GerstnerWave(worldPos, _Amplitude1, _Frequency1, _Speed1, dir1);\n            float3 waveOff2 = GerstnerWave(worldPos, _Amplitude2, _Frequency2, _Speed2, dir2);\n            float3 waveOff3 = GerstnerWave(worldPos, _Amplitude3, _Frequency3, _Speed3, dir3);\n\n            float3 totalOffset = waveOff1 + waveOff2 + waveOff3;\n\n            worldPos += totalOffset;\n\n            o.waveHeight = worldPos.y - _SeaLevel;\n            o.clipPos = mul(UNITY_MATRIX_VP, float4(worldPos, 1.0));\n            o.worldPos = worldPos;\n            o.normal = worldNormal;\n            o.uv = v.uv;\n\n            return o;\n        }\n\n        fixed4 frag(v2f i) : SV_Target\n        {\n            float3 N = normalize(i.normal);\n            float3 V = normalize(_WorldSpaceCameraPos - i.worldPos);\n\n            float fresnelFactor = pow(1.0 - saturate(dot(N, V)), _FresnelPower);\n\n            float shallowFactor = saturate(i.worldPos.y * 0.5 + 0.5);\n            float3 waterColor = lerp(_DeepColor.rgb, _ShallowColor.rgb, shallowFactor);\n\n            float3 finalColor = lerp(waterColor, _FresnelColor.rgb, fresnelFactor);\n\n            float foamEdge0 = 0.02;\n            float foamEdge1 = 0.10;\n\n            float foamFactorHeight = smoothstep(foamEdge0, foamEdge1, i.waveHeight);\n\n            float slopeFactor = 1.0 - saturate(dot(N, float3(0,1,0)));\n            slopeFactor *= 0.5;\n\n            float2 foamUV = i.uv * _FoamScale;\n            float foamTex = tex2D(_FoamTexture, foamUV).r;\n\n            float foamFactor = foamFactorHeight + slopeFactor;\n            foamFactor *= foamTex;\n            foamFactor = saturate(foamFactor * _FoamIntensity);\n\n            finalColor = lerp(finalColor, _FoamColor.rgb, foamFactor);\n\n            return fixed4(finalColor, _Transparency);\n        }\n\n        ENDCG\n    }\n}\n\nFallBack Off<\/code><\/pre>\n\n\n\n<p>}<\/p>\n<\/div>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"160\" height=\"113\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-512.png\" alt=\"\" class=\"wp-image-87625\"\/><\/figure>\n\n\n\n<p>Despu\u00e9s, se realiz\u00f3 clic derecho sobre el shader para crear un nuevo <strong>Material<\/strong>, el cual permiti\u00f3 aplicar todos los efectos visuales configurados anteriormente.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"645\" height=\"687\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-513.png\" alt=\"\" class=\"wp-image-87626\" style=\"aspect-ratio:0.9388918205804749;width:330px;height:auto\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-513.png 645w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-513-282x300.png 282w\" sizes=\"auto, (max-width: 645px) 100vw, 645px\" \/><\/figure>\n\n\n\n<p>Posteriormente, el material creado fue arrastrado directamente al plano del agua para aplicar el shader sobre la superficie del mar.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"119\" height=\"103\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-514.png\" alt=\"\" class=\"wp-image-87627\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"741\" height=\"282\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-515.png\" alt=\"\" class=\"wp-image-87628\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-515.png 741w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-515-300x114.png 300w\" sizes=\"auto, (max-width: 741px) 100vw, 741px\" \/><\/figure>\n\n\n\n<p>Para mejorar a\u00fan m\u00e1s la apariencia visual, se ajustaron diferentes valores desde el panel <strong>Inspector<\/strong>, modificando propiedades relacionadas con el movimiento de las olas, intensidad, transparencia y color del agua.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"510\" height=\"452\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-516.png\" alt=\"\" class=\"wp-image-87629\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-516.png 510w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-516-300x266.png 300w\" sizes=\"auto, (max-width: 510px) 100vw, 510px\" \/><\/figure>\n\n\n\n<p>Finalmente, el mar qued\u00f3 configurado con movimiento din\u00e1mico y un mejor aspecto visual dentro del escenario.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sistema de derrota al caer al mar<\/h2>\n\n\n\n<p>Con el objetivo de aumentar la dificultad del nivel, se configur\u00f3 el mar como una zona de derrota para el jugador.<\/p>\n\n\n\n<p>Inicialmente, se activ\u00f3 la opci\u00f3n <strong>Is Trigger<\/strong> en el collider del plano del agua, permitiendo detectar cu\u00e1ndo el jugador entra en contacto con esta zona sin bloquear f\u00edsicamente el movimiento.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"337\" height=\"215\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-517.png\" alt=\"\" class=\"wp-image-87630\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-517.png 337w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-517-300x191.png 300w\" sizes=\"auto, (max-width: 337px) 100vw, 337px\" \/><\/figure>\n\n\n\n<p>Posteriormente, se cre\u00f3 un script llamado <strong>AguaMuerte<\/strong>, encargado de reiniciar autom\u00e1ticamente la escena cuando el jugador cae al mar.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"107\" height=\"117\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-518.png\" alt=\"\" class=\"wp-image-87631\"\/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>using UnityEngine;<br>using UnityEngine.SceneManagement;<br><br>public class AguaMuerte : MonoBehaviour<br>{<br>    private void OnTriggerEnter(Collider other)<br>    {<br>        if(other.CompareTag(\"Player\"))<br>        {<br>            SceneManager.LoadScene(<br>                SceneManager.GetActiveScene().buildIndex<br>            );<br>        }<br>    }<br>}<\/code><\/pre>\n\n\n\n<p>Despu\u00e9s, el script fue arrastrado al plano del agua para activar el sistema de detecci\u00f3n dentro de la escena.<\/p>\n\n\n\n<p>De esta manera, cada vez que el jugador cae al mar, el nivel se reinicia autom\u00e1ticamente.<\/p>\n\n\n\n<p>Finalmente, para incrementar la dificultad del juego, el mismo script fue agregado tambi\u00e9n al enemigo. Adem\u00e1s, se aument\u00f3 su velocidad de movimiento para hacer m\u00e1s complicada la recolecci\u00f3n de tesoros y generar mayor presi\u00f3n sobre el jugador durante la partida.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"453\" height=\"476\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-519.png\" alt=\"\" class=\"wp-image-87632\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-519.png 453w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-519-286x300.png 286w\" sizes=\"auto, (max-width: 453px) 100vw, 453px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Objetos recogibles<\/h2>\n\n\n\n<p>Para implementar los objetos recogibles del nivel 2, inicialmente se busc\u00f3 e import\u00f3 un <a href=\"https:\/\/niixer.com\/?s=modelado+3d\" type=\"link\" id=\"https:\/\/niixer.com\/?s=modelado+3d\">modelo 3D<\/a> desde la plataforma <a href=\"https:\/\/sketchfab.com?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">Sketchfab<\/a> utilizando el recurso disponible en el enlace <a href=\"https:\/\/skfb.ly\/6TFCB\">https:\/\/skfb.ly\/6TFCB<\/a>. Posteriormente, el modelo fue agregado dentro del escenario y configurado como objeto coleccionable para que el jugador pudiera recogerlo durante la partida mientras evade al enemigo que lo persigue constantemente.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"932\" height=\"632\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-520.png\" alt=\"\" class=\"wp-image-87634\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-520.png 932w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-520-300x203.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-520-768x521.png 768w\" sizes=\"auto, (max-width: 932px) 100vw, 932px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Distribuci\u00f3n de cofres<\/h2>\n\n\n\n<p>Finalmente, se distribuyeron un total de cinco cofres en diferentes zonas del mapa con el objetivo de incentivar la exploraci\u00f3n del escenario y aumentar la dificultad del nivel mientras el jugador evade constantemente al enemigo que lo persigue.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"923\" height=\"532\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-521.png\" alt=\"\" class=\"wp-image-87635\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-521.png 923w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-521-300x173.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-521-768x443.png 768w\" sizes=\"auto, (max-width: 923px) 100vw, 923px\" \/><\/figure>\n\n\n\n<p><strong>Se crea un objeto padre para todos los cofres<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"304\" height=\"118\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-522.png\" alt=\"\" class=\"wp-image-87637\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-522.png 304w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-522-300x116.png 300w\" sizes=\"auto, (max-width: 304px) 100vw, 304px\" \/><\/figure>\n\n\n\n<p><strong>Se les a\u00f1ade un collider<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"449\" height=\"46\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-523.png\" alt=\"\" class=\"wp-image-87638\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-523.png 449w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-523-300x31.png 300w\" sizes=\"auto, (max-width: 449px) 100vw, 449px\" \/><\/figure>\n\n\n\n<p><strong>Por ultimo se activa la opci\u00f3n\u00a0 Is Trigger<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"454\" height=\"224\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-524.png\" alt=\"\" class=\"wp-image-87639\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-524.png 454w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-524-300x148.png 300w\" sizes=\"auto, (max-width: 454px) 100vw, 454px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Script de objeto recogible<\/h2>\n\n\n\n<p>Posteriormente, se cre\u00f3 un script llamado <strong>ObjetoRecogible1<\/strong>, encargado de detectar cu\u00e1ndo el jugador entra en contacto con los cofres u objetos coleccionables del nivel. Mediante el uso de un <strong>Trigger<\/strong>, el sistema identifica al jugador utilizando la etiqueta <strong>Player<\/strong> y, al producirse la colisi\u00f3n, muestra un mensaje de confirmaci\u00f3n y elimina autom\u00e1ticamente el objeto de la escena para simular que fue recogido correctamente.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using UnityEngine;<br><br>public class ObjetoRecogible1 : MonoBehaviour<br>{<br>    public int valor = 1;<br><br>    private void OnTriggerEnter(Collider other)<br>    {<br>        if(other.CompareTag(\"Player\"))<br>        {<br>            Debug.Log(\"Objeto recogido\");<br><br>            Destroy(gameObject);<br>        }<br>    }<br>}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Contador de objetos recogidos<\/h2>\n\n\n\n<p>Para mostrar el progreso del jugador durante el nivel, inicialmente se cre\u00f3 un texto dentro del <strong>Canvas<\/strong> utilizando <strong>TextMeshPro<\/strong>, el cual se encarga de visualizar en pantalla la cantidad de objetos recogidos.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"331\" height=\"186\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-525.png\" alt=\"\" class=\"wp-image-87640\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-525.png 331w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-525-300x169.png 300w\" sizes=\"auto, (max-width: 331px) 100vw, 331px\" \/><\/figure>\n\n\n\n<p>Posteriormente, se desarroll\u00f3 un script llamado <strong>GameManager<\/strong>, encargado de administrar el contador de objetos recolectados dentro del nivel. Este script actualiza constantemente el texto mostrado en pantalla y verifica si el jugador ya recogi\u00f3 la cantidad necesaria de cofres para completar el nivel.<\/p>\n\n\n\n<p>Adem\u00e1s, cuando el jugador alcanza el n\u00famero de objetos requeridos, el sistema carga autom\u00e1ticamente el siguiente nivel del videojuego.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using UnityEngine;<br>using UnityEngine.SceneManagement;<br>using TMPro;<br><br>public class GameManager : MonoBehaviour<br>{<br>    public static GameManager instancia;<br><br>    public int objetosRecogidos = 0;<br><br>    public int objetosNecesarios = 5;<br><br>    public TextMeshProUGUI textoObjetos;<br><br>    public string siguienteNivel;<br><br>    void Awake()<br>    {<br>        instancia = this;<br>    }<br><br>    void Update()<br>    {<br>        textoObjetos.text =<br>        \"Objetos: \" +<br>        objetosRecogidos +<br>        \"\/\" +<br>        objetosNecesarios;<br><br>        if(objetosRecogidos &gt;= objetosNecesarios)<br>        {<br>            SceneManager.LoadScene(siguienteNivel);<br>        }<br>    }<br><br>    public void SumarObjeto()<br>    {<br>        objetosRecogidos++;<br>    }<br>}<\/code><\/pre>\n\n\n\n<p>Finalmente, se cre\u00f3 un objeto vac\u00edo (<strong>Empty GameObject<\/strong>) dentro de la escena llamado <strong>GameManager<\/strong>, el cual se utiliz\u00f3 para centralizar la l\u00f3gica principal del nivel. Posteriormente, se le asign\u00f3 el script <strong>GameManager<\/strong> anteriormente creado, permitiendo administrar el contador de objetos recogidos, actualizar el texto en pantalla y controlar autom\u00e1ticamente el cambio al siguiente nivel cuando el jugador completa el objetivo.<br><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"256\" height=\"44\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-528.png\" alt=\"\" class=\"wp-image-87645\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"611\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-529-1024x611.png\" alt=\"\" class=\"wp-image-87646\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-529-1024x611.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-529-300x179.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-529-768x458.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-529.png 1073w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\">Nivel 3: No caer<\/h1>\n\n\n\n<p>El tercer nivel del videojuego fue dise\u00f1ado con una tem\u00e1tica de parkour, donde el principal objetivo del jugador consiste en avanzar a trav\u00e9s de diferentes plataformas sin caer al vac\u00edo.<\/p>\n\n\n\n<p>Inicialmente, se busc\u00f3 un modelo 3D de parkour desde la plataforma <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/sketchfab.com?utm_source=chatgpt.com\">Sketchfab<\/a> utilizando el recurso disponible en el enlace <a href=\"https:\/\/skfb.ly\/pDMnU\">https:\/\/skfb.ly\/pDMnU<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"582\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-587-1024x582.png\" alt=\"\" class=\"wp-image-87729\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-587-1024x582.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-587-300x171.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-587-768x436.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-587.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Posteriormente, el modelo fue importado dentro de Unity y agregado a la escena del proyecto para comenzar la construcci\u00f3n del nivel.<\/p>\n\n\n\n<p>Despu\u00e9s, se realizaron diferentes ajustes de posici\u00f3n, escala y rotaci\u00f3n sobre el escenario con el fin de adaptar correctamente el mapa a la jugabilidad deseada y definir el recorrido que debe completar el jugador.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"705\" height=\"323\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-588.png\" alt=\"\" class=\"wp-image-87733\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-588.png 705w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-588-300x137.png 300w\" sizes=\"auto, (max-width: 705px) 100vw, 705px\" \/><\/figure>\n\n\n\n<p>Adem\u00e1s, se organizaron las plataformas y obst\u00e1culos estrat\u00e9gicamente para aumentar la dificultad del nivel, obligando al jugador a calcular correctamente los saltos y movimientos para evitar caer.<\/p>\n\n\n\n<p>Finalmente, el nivel fue configurado como una prueba de habilidad y precisi\u00f3n, ofreciendo una experiencia m\u00e1s desafiante y din\u00e1mica dentro del videojuego.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"518\" height=\"272\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-589.png\" alt=\"\" class=\"wp-image-87736\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-589.png 518w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-589-300x158.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-589-390x205.png 390w\" sizes=\"auto, (max-width: 518px) 100vw, 518px\" \/><\/figure>\n\n\n\n<p><strong>Configuraci\u00f3n de colliders en el nivel<\/strong><\/p>\n\n\n\n<p>Posteriormente, se a\u00f1adieron los componentes <strong>Collider<\/strong> a los diferentes objetos y plataformas del escenario con el fin de permitir una correcta interacci\u00f3n f\u00edsica dentro del nivel. Gracias a esta configuraci\u00f3n, el jugador puede desplazarse sobre las estructuras del mapa sin atravesarlas, mejorando la jugabilidad y permitiendo realizar correctamente los saltos y movimientos del parkour.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"946\" height=\"294\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-590.png\" alt=\"\" class=\"wp-image-87739\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-590.png 946w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-590-300x93.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-590-768x239.png 768w\" sizes=\"auto, (max-width: 946px) 100vw, 946px\" \/><\/figure>\n\n\n\n<p>Se crea un plano y se le a\u00f1ade un material, es este caso se busco una imagen del espacio<br><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"408\" height=\"345\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-591.png\" alt=\"\" class=\"wp-image-87744\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-591.png 408w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-591-300x254.png 300w\" sizes=\"auto, (max-width: 408px) 100vw, 408px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Sistema de derrota y pantalla final<\/h2>\n\n\n\n<p>Para detectar cu\u00e1ndo el jugador cae fuera de las plataformas, se reutiliz\u00f3 el mismo script implementado anteriormente en el nivel 2 para el agua. De esta manera, al entrar en contacto con la zona de ca\u00edda, el sistema reinicia autom\u00e1ticamente la escena, obligando al jugador a comenzar nuevamente el recorrido del parkour.<\/p>\n\n\n\n<p>Finalmente, despu\u00e9s de completar el nivel 3, se cre\u00f3 un <strong>Canvas<\/strong> similar al utilizado en el men\u00fa inicial del videojuego. Este canvas se encarg\u00f3 de mostrar la pantalla final del juego, indicando que el jugador logr\u00f3 completar correctamente todos los niveles.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"353\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-593-1024x353.png\" alt=\"\" class=\"wp-image-87748\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-593-1024x353.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-593-300x103.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-593-768x265.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-593.png 1271w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">M\u00fasica de los niveles<\/h2>\n\n\n\n<p>Con el fin de mejorar la ambientaci\u00f3n y generar una experiencia m\u00e1s inmersiva dentro del videojuego, se buscaron diferentes efectos de sonido y m\u00fasica de fondo para acompa\u00f1ar cada uno de los niveles del juego. Posteriormente, los audios fueron importados a Unity y configurados dentro de la escena para reproducirse durante la partida seg\u00fan el nivel correspondiente.<\/p>\n\n\n\n<p><a href=\"https:\/\/pixabay.com\/es\/sound-effects\/search\/musica%20juego\">https:\/\/pixabay.com\/es\/sound-effects\/search\/musica%20juego<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"102\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-599-1024x102.png\" alt=\"\" class=\"wp-image-87773\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-599-1024x102.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-599-300x30.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-599-768x77.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-599.png 1164w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Implementaci\u00f3n de m\u00fasica en el videojuego<\/h2>\n\n\n\n<p>Con el fin de mejorar la ambientaci\u00f3n y experiencia del jugador dentro del videojuego, inicialmente se cre\u00f3 una carpeta llamada <strong>M\u00fasica<\/strong> dentro de la carpeta <strong>Assets<\/strong> del proyecto para organizar correctamente los archivos de audio utilizados en los diferentes niveles.<\/p>\n\n\n\n<p>Posteriormente, los archivos de m\u00fasica fueron importados dentro de esta carpeta y luego se cre\u00f3 un objeto de audio en la escena utilizando un componente <strong>Audio Source<\/strong>, encargado de reproducir la m\u00fasica de fondo durante la partida.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"715\" height=\"810\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-604.png\" alt=\"\" class=\"wp-image-87785\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-604.png 715w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-604-265x300.png 265w\" sizes=\"auto, (max-width: 715px) 100vw, 715px\" \/><\/figure>\n\n\n\n<p>Posteriormente, se activ\u00f3 la opci\u00f3n <strong>Loop<\/strong> dentro del componente de audio para que la m\u00fasica se reprodujera continuamente durante la partida, y este mismo procedimiento fue repetido en las dem\u00e1s escenas del videojuego para mantener ambientaci\u00f3n sonora en todos los niveles.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"576\" height=\"464\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-605.png\" alt=\"\" class=\"wp-image-87786\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-605.png 576w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-605-300x242.png 300w\" sizes=\"auto, (max-width: 576px) 100vw, 576px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">File Build Profile<\/h3>\n\n\n\n<p>En este apartado se verifica que todas las escenas del proyecto est\u00e9n correctamente listadas y organizadas en el orden adecuado dentro del <strong>Build Profile<\/strong>. Esto es importante para asegurar que el juego cargue de manera correcta durante su ejecuci\u00f3n.<\/p>\n\n\n\n<p>Posteriormente, en el escritorio se crea una nueva carpeta con el nombre <strong>\u201cExe\u201d<\/strong>, la cual se utilizar\u00e1 como destino del archivo ejecutable del juego.<\/p>\n\n\n\n<p>Finalmente, se selecciona la opci\u00f3n <strong>Build<\/strong> y, en la ventana de configuraci\u00f3n, se elige la carpeta creada anteriormente como ubicaci\u00f3n de salida. Al completar este proceso, se genera el ejecutable del juego dentro de dicha carpeta, permitiendo su ejecuci\u00f3n de forma independiente.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"786\" height=\"494\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-619.png\" alt=\"\" class=\"wp-image-87801\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-619.png 786w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-619-300x189.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-619-768x483.png 768w\" sizes=\"auto, (max-width: 786px) 100vw, 786px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Cr\u00e9ditos:<\/strong><\/h4>\n\n\n\n<p>Autor:\u00a0<a href=\"https:\/\/niixer.com\/?s=Oscar+Eduardo+Pacheco+Sanchez\">Oscar Eduardo Pacheco Sanchez<\/a><\/p>\n\n\n\n<p>Editor:&nbsp;<a href=\"https:\/\/niixer.com\/?s=Carlos+Ivan+Pinzon+Romero\">Carlos Ivan Pinzon Romero<\/a><\/p>\n\n\n\n<p>C\u00f3digo:&nbsp;<a href=\"https:\/\/niixer.com\/?s=UCMVG1-9\">UCMVG1-9<\/a><\/p>\n\n\n\n<p>Universidad:&nbsp;<a href=\"https:\/\/www.ucentral.edu.co\/\">Universidad Central<\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Referencias:<\/strong><\/h4>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p>Adobe. (2024). <em>Mixamo<\/em>. <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/www.mixamo.com?utm_source=chatgpt.com\">Mixamo<\/a><\/p>\n\n\n\n<p>Dev Rychz. (2025, 27 de marzo). <em>Como hacer un enemigo que te persiga con RANGO en Unity || Enemigo te persigue || Tutorial 2025<\/em> [Video]. YouTube. <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/www.youtube.com\/watch?v=-G3x0M2EynM&amp;t=1359s&amp;utm_source=chatgpt.com\">YouTube<\/a><\/p>\n\n\n\n<p>Pixabay. (s. f.). <em>M\u00fasica de juego: efectos de sonido y m\u00fasica libre de derechos<\/em>. Pixabay. <a href=\"https:\/\/pixabay.com\/es\/sound-effects\/search\/musica%20juego?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">Pixabay<\/a><\/p>\n\n\n\n<p>iRulosso. (2024, 28 de abril). <em>\u00a1C\u00f3mo crear un personaje en Unity 3D! (F\u00e1cil y r\u00e1pido)<\/em> [Video]. YouTube. <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/www.youtube.com\/watch?v=FURegpjm9sY&amp;utm_source=chatgpt.com\">YouTube<\/a><\/p>\n\n\n\n<p>Kostasdev. (2020, 20 de septiembre). <em>Animaciones GRATIS para tu juego en UNITY! | MIXAMO<\/em> [Video]. YouTube. <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/www.youtube.com\/watch?v=e-B1NM2-Ols&amp;utm_source=chatgpt.com\">YouTube<\/a><\/p>\n\n\n\n<p>LuisCanary. (2025, 9 de junio). <em>Como hacer un MENU PRINCIPAL en Unity \/Main Menu\/ Facil y Sencillo para 2D y 3D<\/em> [Video]. YouTube. <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/www.youtube.com\/watch?v=f1wugS7ZfiM&amp;utm_source=chatgpt.com\">YouTube<\/a><\/p>\n\n\n\n<p>Sketchfab. (2024). <em>Sketchfab: 3D models platform<\/em>. <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/sketchfab.com?utm_source=chatgpt.com\">Sketchfab<\/a><\/p>\n\n\n\n<p>Unity Technologies. (2024). <em>Unity documentation: NavMesh Agent<\/em>. Unity Documentation. <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/docs.unity3d.com\/Manual\/class-NavMeshAgent.html?utm_source=chatgpt.com\">Unity Documentation<\/a><\/p>\n\n\n\n<p>Unity Technologies. (2024). <em>Unity documentation: PlayerPrefs<\/em>. Unity Documentation. <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/docs.unity3d.com\/ScriptReference\/PlayerPrefs.html?utm_source=chatgpt.com\">Unity Documentation<\/a><\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Introducci\u00f3n El desarrollo de videojuegos se ha convertido en una de las \u00e1reas m\u00e1s importantes del entretenimiento digital, permitiendo crear experiencias interactivas mediante herramientas como Unity. En este art\u00edculo se presenta el proceso de creaci\u00f3n del videojuego \u201cThe Four Trials\u201d, un proyecto desarrollado en tercera persona que incluye diferentes escenarios,Seguir Leyendo<\/p>\n","protected":false},"author":2060,"featured_media":87401,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[4247],"tags":[324,66],"class_list":["post-87398","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-video-juegos","tag-juegos","tag-videojuegos"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Desarrollo del videojuego \u201cThe Four Trials\u201d en Unity: paso a paso &#8211; Portal de noticias de tecnolog\u00eda, Realidad Virtual, Aumentada y Mixta, Videojuegos<\/title>\n<meta name=\"description\" content=\"Desarrollo de videojuego en Unity 3D con selecci\u00f3n de personajes, enemigos con IA, objetos coleccionables y niveles parkour.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/niixer.com\/index.php\/2026\/05\/21\/desarrollo-del-videojuego-the-four-trials-en-unity-paso-a-paso\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Desarrollo del videojuego \u201cThe Four Trials\u201d en Unity: paso a paso &#8211; Portal de noticias de tecnolog\u00eda, Realidad Virtual, Aumentada y Mixta, Videojuegos\" \/>\n<meta property=\"og:description\" content=\"Desarrollo de videojuego en Unity 3D con selecci\u00f3n de personajes, enemigos con IA, objetos coleccionables y niveles parkour.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/niixer.com\/index.php\/2026\/05\/21\/desarrollo-del-videojuego-the-four-trials-en-unity-paso-a-paso\/\" \/>\n<meta property=\"og:site_name\" content=\"Portal de noticias de tecnolog\u00eda, Realidad Virtual, Aumentada y Mixta, Videojuegos\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/niixer\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-21T22:42:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-21T22:42:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/imagen-video-juego-1-e1779330523558.png\" \/>\n\t<meta property=\"og:image:width\" content=\"875\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"opachecos\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"opachecos\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"39 minutos\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Desarrollo del videojuego \u201cThe Four Trials\u201d en Unity: paso a paso &#8211; Portal de noticias de tecnolog\u00eda, Realidad Virtual, Aumentada y Mixta, Videojuegos","description":"Desarrollo de videojuego en Unity 3D con selecci\u00f3n de personajes, enemigos con IA, objetos coleccionables y niveles parkour.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/niixer.com\/index.php\/2026\/05\/21\/desarrollo-del-videojuego-the-four-trials-en-unity-paso-a-paso\/","og_locale":"es_ES","og_type":"article","og_title":"Desarrollo del videojuego \u201cThe Four Trials\u201d en Unity: paso a paso &#8211; Portal de noticias de tecnolog\u00eda, Realidad Virtual, Aumentada y Mixta, Videojuegos","og_description":"Desarrollo de videojuego en Unity 3D con selecci\u00f3n de personajes, enemigos con IA, objetos coleccionables y niveles parkour.","og_url":"https:\/\/niixer.com\/index.php\/2026\/05\/21\/desarrollo-del-videojuego-the-four-trials-en-unity-paso-a-paso\/","og_site_name":"Portal de noticias de tecnolog\u00eda, Realidad Virtual, Aumentada y Mixta, Videojuegos","article_publisher":"https:\/\/www.facebook.com\/niixer\/","article_published_time":"2026-05-21T22:42:30+00:00","article_modified_time":"2026-05-21T22:42:31+00:00","og_image":[{"width":875,"height":720,"url":"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/imagen-video-juego-1-e1779330523558.png","type":"image\/png"}],"author":"opachecos","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"opachecos","Tiempo de lectura":"39 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/niixer.com\/index.php\/2026\/05\/21\/desarrollo-del-videojuego-the-four-trials-en-unity-paso-a-paso\/#article","isPartOf":{"@id":"https:\/\/niixer.com\/index.php\/2026\/05\/21\/desarrollo-del-videojuego-the-four-trials-en-unity-paso-a-paso\/"},"author":{"name":"opachecos","@id":"https:\/\/niixer.com\/#\/schema\/person\/940d34670801f1db2321ec557cd80f83"},"headline":"Desarrollo del videojuego \u201cThe Four Trials\u201d en Unity: paso a paso","datePublished":"2026-05-21T22:42:30+00:00","dateModified":"2026-05-21T22:42:31+00:00","mainEntityOfPage":{"@id":"https:\/\/niixer.com\/index.php\/2026\/05\/21\/desarrollo-del-videojuego-the-four-trials-en-unity-paso-a-paso\/"},"wordCount":4716,"publisher":{"@id":"https:\/\/niixer.com\/#organization"},"image":{"@id":"https:\/\/niixer.com\/index.php\/2026\/05\/21\/desarrollo-del-videojuego-the-four-trials-en-unity-paso-a-paso\/#primaryimage"},"thumbnailUrl":"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/imagen-video-juego-1-e1779330523558.png","keywords":["Juegos","Videojuegos"],"articleSection":["video juegos"],"inLanguage":"es"},{"@type":"WebPage","@id":"https:\/\/niixer.com\/index.php\/2026\/05\/21\/desarrollo-del-videojuego-the-four-trials-en-unity-paso-a-paso\/","url":"https:\/\/niixer.com\/index.php\/2026\/05\/21\/desarrollo-del-videojuego-the-four-trials-en-unity-paso-a-paso\/","name":"Desarrollo del videojuego \u201cThe Four Trials\u201d en Unity: paso a paso &#8211; Portal de noticias de tecnolog\u00eda, Realidad Virtual, Aumentada y Mixta, Videojuegos","isPartOf":{"@id":"https:\/\/niixer.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/niixer.com\/index.php\/2026\/05\/21\/desarrollo-del-videojuego-the-four-trials-en-unity-paso-a-paso\/#primaryimage"},"image":{"@id":"https:\/\/niixer.com\/index.php\/2026\/05\/21\/desarrollo-del-videojuego-the-four-trials-en-unity-paso-a-paso\/#primaryimage"},"thumbnailUrl":"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/imagen-video-juego-1-e1779330523558.png","datePublished":"2026-05-21T22:42:30+00:00","dateModified":"2026-05-21T22:42:31+00:00","description":"Desarrollo de videojuego en Unity 3D con selecci\u00f3n de personajes, enemigos con IA, objetos coleccionables y niveles parkour.","breadcrumb":{"@id":"https:\/\/niixer.com\/index.php\/2026\/05\/21\/desarrollo-del-videojuego-the-four-trials-en-unity-paso-a-paso\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/niixer.com\/index.php\/2026\/05\/21\/desarrollo-del-videojuego-the-four-trials-en-unity-paso-a-paso\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/niixer.com\/index.php\/2026\/05\/21\/desarrollo-del-videojuego-the-four-trials-en-unity-paso-a-paso\/#primaryimage","url":"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/imagen-video-juego-1-e1779330523558.png","contentUrl":"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/imagen-video-juego-1-e1779330523558.png","width":875,"height":720,"caption":"The Four Trials"},{"@type":"BreadcrumbList","@id":"https:\/\/niixer.com\/index.php\/2026\/05\/21\/desarrollo-del-videojuego-the-four-trials-en-unity-paso-a-paso\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/niixer.com\/"},{"@type":"ListItem","position":2,"name":"Desarrollo del videojuego \u201cThe Four Trials\u201d en Unity: paso a paso"}]},{"@type":"WebSite","@id":"https:\/\/niixer.com\/#website","url":"https:\/\/niixer.com\/","name":"Portal de noticias de tecnolog\u00eda, ciencia, Android, iOS, Realidad Virtual, Aumentada y Mixta, Videojuegos, computadores, todo lo mas reciente en tecnolog\u00eda","description":"Portal de noticias de tecnolog\u00eda","publisher":{"@id":"https:\/\/niixer.com\/#organization"},"alternateName":"Niixer","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/niixer.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/niixer.com\/#organization","name":"Niixer","alternateName":"Niixer.com","url":"https:\/\/niixer.com\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/niixer.com\/#\/schema\/logo\/image\/","url":"https:\/\/niixer.com\/wp-content\/uploads\/2022\/08\/logo-niixer-sin-fondo-1.png","contentUrl":"https:\/\/niixer.com\/wp-content\/uploads\/2022\/08\/logo-niixer-sin-fondo-1.png","width":140,"height":140,"caption":"Niixer"},"image":{"@id":"https:\/\/niixer.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/niixer\/","https:\/\/www.instagram.com\/niixer.tecnologia\/"]},{"@type":"Person","@id":"https:\/\/niixer.com\/#\/schema\/person\/940d34670801f1db2321ec557cd80f83","name":"opachecos","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/31c9407fa5e16e0391d28ae857bf3f14c775065e40c3c7c44bbede0adebf0cfd?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/31c9407fa5e16e0391d28ae857bf3f14c775065e40c3c7c44bbede0adebf0cfd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/31c9407fa5e16e0391d28ae857bf3f14c775065e40c3c7c44bbede0adebf0cfd?s=96&d=mm&r=g","caption":"opachecos"},"url":"https:\/\/niixer.com\/index.php\/author\/opachecos\/"}]}},"jetpack_featured_media_url":"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/imagen-video-juego-1-e1779330523558.png","_links":{"self":[{"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/posts\/87398","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/users\/2060"}],"replies":[{"embeddable":true,"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/comments?post=87398"}],"version-history":[{"count":6,"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/posts\/87398\/revisions"}],"predecessor-version":[{"id":87802,"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/posts\/87398\/revisions\/87802"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/media\/87401"}],"wp:attachment":[{"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/media?parent=87398"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/categories?post=87398"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/tags?post=87398"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}