{"id":67397,"date":"2025-05-24T03:57:42","date_gmt":"2025-05-24T08:57:42","guid":{"rendered":"https:\/\/niixer.com\/?p=67397"},"modified":"2025-05-31T07:34:42","modified_gmt":"2025-05-31T12:34:42","slug":"recolector-gemas-unity","status":"publish","type":"post","link":"https:\/\/niixer.com\/index.php\/2025\/05\/24\/recolector-gemas-unity\/","title":{"rendered":"Buscador de Gemas en Tiempo Record"},"content":{"rendered":"\n<p>El presente proyecto, Buscador de Gemas en Tiempo R\u00e9cord, consiste en el desarrollo de un videojuego de plataformas en tres dimensiones utilizando el motor de desarrollo Unity. En este juego, el jugador asume el rol de un explorador que debe recolectar gemas dispersas en diferentes escenarios dentro de un l\u00edmite de tiempo, lo que a\u00f1ade un componente de urgencia y estrategia. Este tipo de juegos de 3D se caracteriza por centrarse en la exploraci\u00f3n de entornos tridimensionales, la precisi\u00f3n en los saltos y la superaci\u00f3n de obst\u00e1culos mediante mec\u00e1nicas de movimiento como correr, saltar y escalar. El objetivo principal de este trabajo es dise\u00f1ar y programar una experiencia interactiva que combine jugabilidad fluida, un entorno visual atractivo y una estructura de niveles que promueva el aprendizaje progresivo del jugador.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"539\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/image-512-1024x539.png\" alt=\"Inicio juego buscador de Gemas en tiempo Record\" class=\"wp-image-67399\" style=\"object-fit:cover;width:1280px;height:720px\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/image-512-1024x539.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/image-512-300x158.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/image-512-768x404.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/image-512-1536x809.png 1536w, https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/image-512-2048x1078.png 2048w, https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/image-512-390x205.png 390w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\">Figura 1. Inicio de jugabilidad<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Jugabilidad Recolector Gemas<\/strong><\/h2>\n\n\n\n<p>La jugabilidad del <a href=\"https:\/\/niixer.com\/index.php\/2025\/03\/22\/gta-v-el-fenomeno-que-redefinio-la-industria-del-videojuego\/\">videojuego<\/a> <a href=\"https:\/\/niixer.com\/index.php\/2025\/04\/13\/introduccion-a-firebase-studio-la-revolucion-en-el-desarrollo-de-aplicaciones-con-inteligencia-artificial\/\">desarrollado<\/a> se basa en mec\u00e1nicas cl\u00e1sicas del g\u00e9nero de plataformas en <a href=\"https:\/\/niixer.com\/index.php\/2025\/05\/21\/diseno-y-animacion-de-entornos-3d-interactivos-en-blender\/\">3D<\/a>, con un enfoque en la simplicidad y la precisi\u00f3n del control. El jugador asume el rol de un personaje principal que debe desplazarse a trav\u00e9s de escenarios tridimensionales superando obst\u00e1culos, evitando ca\u00eddas y alcanzando puntos clave del mapa.<\/p>\n\n\n\n<p>El sistema de control est\u00e1 dise\u00f1ado para ser intuitivo y accesible. El desplazamiento del personaje se realiza mediante el teclado, utilizando las siguientes teclas:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>W<\/strong>: Avanzar hacia adelante<\/li>\n\n\n\n<li><strong>A<\/strong>: Desplazarse hacia la izquierda<\/li>\n\n\n\n<li><strong>S<\/strong>: Retroceder<\/li>\n\n\n\n<li><strong>D<\/strong>: Desplazarse hacia la derecha<\/li>\n<\/ul>\n\n\n\n<p>Estas teclas permiten moverse libremente por el entorno, combinando desplazamientos horizontales con rotaci\u00f3n de c\u00e1mara, que puede ser controlada con el rat\u00f3n (si se ha implementado esta funci\u00f3n). Adem\u00e1s, el jugador puede realizar un salto utilizando la tecla espacio, lo que le permite superar obst\u00e1culos, saltar entre plataformas flotantes o alcanzar zonas elevadas.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"549\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/image-513-1024x549.png\" alt=\"Modulos Scrips unity\" class=\"wp-image-67402\" style=\"object-fit:contain;width:1280px;height:720px\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/image-513-1024x549.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/image-513-300x161.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/image-513-768x412.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/image-513-1536x824.png 1536w, https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/image-513-2048x1099.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\">Figura 2. Jugabilidad<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-left\"><strong>Creaci\u00f3n Escenario<\/strong><\/h2>\n\n\n\n<p>La base del entorno de los juegos en 3D se crea de la siguiente manera: primero, se inicia un nuevo proyecto en Unity seleccionando la plantilla 3D y asign\u00e1ndole un nombre representativo.<\/p>\n\n\n\n<p>Una vez dentro del entorno de desarrollo, se procede a crear el suelo que servir\u00e1 como plataforma principal. Esto se hace haciendo clic derecho en el panel <strong>Hierarchy<\/strong> y seleccionando la opci\u00f3n <strong>3D Object &gt; Cube<\/strong>.<\/p>\n\n\n\n<p>Al cubo generado se le asigna el nombre de &#8220;Ground&#8221; y se ajusta su escala en el panel <strong>Inspector<\/strong> para convertirlo en una superficie amplia y plana, por ejemplo, con valores de escala X=20, Y=1 y Z=20. Esta modificaci\u00f3n transforma el cubo en una plataforma adecuada para el movimiento del personaje.<\/p>\n\n\n\n<p>Opcionalmente, para mejorar la apariencia visual del escenario, se puede crear un nuevo material desde el panel <strong>Assets<\/strong>, asignarle un color personalizado y aplicarlo al objeto &#8220;Ground&#8221; arrastr\u00e1ndolo sobre \u00e9l.<\/p>\n\n\n\n<p>Con estos pasos, se establece el terreno base sobre el cual se construir\u00e1 el resto del entorno y se desarrollar\u00e1 la jugabilidad del juego de plataformas en 3D.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"558\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/image-515-1024x558.png\" alt=\"Cargue de ecenarios\" class=\"wp-image-67404\" style=\"object-fit:contain;width:1280px;height:720px\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/image-515-1024x558.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/image-515-300x163.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/image-515-768x418.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/image-515-1536x837.png 1536w, https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/image-515-2048x1116.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\">Figura 3. Creaci\u00f3n escenario.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Importaci\u00f3n de personaje<\/strong><\/h2>\n\n\n\n<p>Se selecciona un modelo para juegos de 3D adecuado al estilo del videojuego. Posteriormente, se elige una animaci\u00f3n b\u00e1sica y se descarg\u00f3 el archivo en formato<strong> <\/strong>FBX para Unity,<strong> <\/strong>con la opci\u00f3n with ski activada para incluir tanto el modelo como su esqueleto.<\/p>\n\n\n\n<p>Una vez descargado el archivo, este fue importado al proyecto de Unity arrastr\u00e1ndolo directamente a la carpeta Assets dentro del panel del proyecto. Unity reconoce autom\u00e1ticamente la estructura del rig humanoide. A continuaci\u00f3n, se seleccion\u00f3 el archivo del modelo y, en el inspector, se accedi\u00f3 a la pesta\u00f1a Rig. All\u00ed, se cambi\u00f3 el tipo de animaci\u00f3n de Generic y se hizo clic en Apply para asegurar la compatibilidad con el sistema de animaciones de Unity.<\/p>\n\n\n\n<p>Luego, se cre\u00f3 un objeto en la escena arrastrando el modelo desde la carpeta de assets hasta el panel &#8220;Hierarchy&#8221;. Este objeto fue renombrado como Player. Para habilitar la interacci\u00f3n f\u00edsica con el entorno, se le agreg\u00f3 un componente<strong> <\/strong>Rigidbody, permiti\u00e9ndole reaccionar a la gravedad y otras fuerzas f\u00edsicas. Tambi\u00e9n se a\u00f1adi\u00f3 un Capsule Collider, adaptado a la forma y tama\u00f1o del personaje, para gestionar las colisiones con el entorno.<\/p>\n\n\n\n<p>Paralelamente, se cre\u00f3 un Animator Controller, el cual fue asignado al componente Animator del modelo. Este controlador permite administrar las distintas animaciones del personaje (por ejemplo, Idle, Caminar, Saltar) mediante par\u00e1metros que luego son manipulados desde un script en C#. Finalmente, se desarroll\u00f3 un script de movimiento b\u00e1sico que responde a las entradas del teclado (WASD para moverse y barra espaciadora para saltar) y que controla tanto el desplazamiento del personaje como el cambio de animaciones a trav\u00e9s del Animator.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"664\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/image-524-1024x664.png\" alt=\"Cargue de personajes\" class=\"wp-image-67426\" style=\"object-fit:contain;width:1280px;height:720px\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/image-524-1024x664.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/image-524-300x195.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/image-524-768x498.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/image-524-1536x996.png 1536w, https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/image-524-2048x1329.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\">Figura 4. Carga del personaje<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Carga de l\u00f3gica en la aplicaci\u00f3n<\/strong><\/h2>\n\n\n\n<p>Los juegos de 3D tienen una mec\u00e1nica de interacci\u00f3n que permita al jugador<strong> <\/strong>recoger objetos (gemas), se desarroll\u00f3 unos script<strong> <\/strong>, que permite detectar <a href=\"https:\/\/docs.unity3d.com\/560\/Documentation\/Manual\/CollidersOverview.html\">colisiones<\/a> entre el personaje y los objetos<a href=\"https:\/\/learn.unity.com\/pathway\/creative-core\"> recolectables<\/a>, as\u00ed como gestionar su desaparici\u00f3n del entorno y su conteo interno. Esta funcionalidad es fundamental para construir din\u00e1micas de juego como la obtenci\u00f3n de puntos, desbloqueo de niveles o recolecci\u00f3n de elementos clave.<\/p>\n\n\n\n<p>Se debe ubicar el archivo con extensi\u00f3n .cs y arrastrarlo directamente a la carpeta <strong>Assets<\/strong> del proyecto dentro del panel del explorador de Unity. Alternativamente, tambi\u00e9n puede copiarse y pegarse manualmente dentro de la carpeta del proyecto desde el sistema de archivos del equipo. Una vez importado, Unity reconocer\u00e1 autom\u00e1ticamente el archivo como un componente de script y proceder\u00e1 a compilarlo.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"691\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/image-528-1024x691.png\" alt=\"Logica de la aplicacion\" class=\"wp-image-67431\" style=\"object-fit:contain;width:1280px;height:720px\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/image-528-1024x691.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/image-528-300x202.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/image-528-768x518.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/image-528-1536x1037.png 1536w, https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/image-528.png 1959w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\">Figura 5. Importaci\u00f3n Script<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong> Timer en C#<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>public class Timer : MonoBehaviour\n{\npublic float timer = 300f; \/\/ tiempo inicial en segundos (5 min)\npublic TextMeshProUGUI textTimer;\npublic GameObject gameOverPanel;\nprivate bool isGameOver = false;\n\n void Update()\n{\n    if (isGameOver) return;\n\n    timer -= Time.deltaTime;\n    if (timer &lt;= 0f)\n    {\n        timer = 0f;\n        GameOver();\n    }\n\n    int minutes = Mathf.FloorToInt(timer \/ 60f);\n    int seconds = Mathf.FloorToInt(timer % 60f);\n\n    textTimer.text = string.Format(\"{0:00}:{1:00}\", minutes, seconds);\n}\n\nvoid GameOver()\n{\n    isGameOver = true;\n    Time.timeScale = 0f;\n    gameOverPanel.SetActive(true);\n}\n\npublic void Retry()\n{\n    Time.timeScale = 1f;\n    SceneManager.LoadScene(SceneManager.GetActiveScene().name);\n}\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Script para Ca\u00eddas del Personaje<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>public class PlayerMotion : MonoBehaviour\n{\npublic Transform cam;\npublic float speed;\npublic float speedRotation = 10;\npublic float groundDistanceUp, groundDistance;\npublic float jumpPower = 35;\npublic float gravity = 9.8f;\npublic float gravityMultiplayer = 1;\npublic bool onGround, isJump;\npublic bool stop;\npublic LayerMask groundLayer;\nRigidbody rb;\nAnimator anim;\nVector2 _move;\nVector3 move;\n\/\/variables Camara\npublic CinemachineFreeLook cinemachineFreeLook;\npublic GameObject targetCam;\npublic float rotationSpeedCamX, rotationSpeedCamY;\nVector2 m_look;\n\nvoid Awake()\n{\n    rb = GetComponent&lt;Rigidbody&gt;();\n    anim = GetComponentInChildren&lt;Animator&gt;();       \n}\n\nprivate void OnDrawGizmosSelected()\n{\n    Gizmos.color = Color.yellow;\n    Gizmos.DrawSphere(transform.position + (Vector3.up * groundDistanceUp),groundDistance);\n}\n\n\nvoid FixedUpdate()\n{\n    onGround = Physics.CheckSphere(transform.position + (Vector3.up * groundDistanceUp),groundDistance, groundLayer);\n    if (!onGround)\n        rb.AddForce(-gravity * gravityMultiplayer * Vector3.up, ForceMode.Acceleration);\n    if (isJump &amp;&amp; onGround)\n    {\n        isJump = false;\n        anim.SetBool(\"OnAir\", false);\n        rb.velocity = Vector3.zero;\n    }\n    else if (!isJump &amp;&amp; !onGround)\n    {\n        anim.SetBool(\"OnAir\", true);\n        isJump = true;\n        Stopping();\n        anim.SetTrigger(\"Fall\");\n    }\n\n    if (stop)\n        return;\n\n    if(_move.x != 0 || _move.y != 0)\n    {\n        move = cam.forward * _move.y;\n        move += cam.right * _move.x;\n        move.Normalize();\n        move.y = 0;\n        rb.velocity = move * speed;\n        Vector3 dir = cam.forward * _move.y;\n        dir += cam.right * _move.x;\n        dir.Normalize();\n        dir.y = 0;\n        Quaternion targetR = Quaternion.LookRotation(dir);\n        Quaternion playerR = Quaternion.Slerp(transform.rotation, targetR, speedRotation * Time.fixedDeltaTime);\n        transform.rotation = playerR;\n\n    }\n\n}\npublic void OnMove(InputValue value)\n{\n    _move = value.Get&lt;Vector2&gt;();\n    if (stop)\n        return;\n    anim.SetBool(\"Move\", (_move.x == 0 &amp;&amp; _move.y == 0) ? false : true);\n    anim.SetFloat(\"Moving\", (_move.x == 0 &amp;&amp; _move.y == 0) ? 0 : 1);\n    if (_move.x == 0 &amp;&amp; _move.y == 0)\n         rb.velocity = Vector3.zero; \n    anim.SetFloat(\"MoveX\", _move.x);\n    anim.SetFloat(\"MoveY\", _move.y);\n}\n\npublic void OnJump()\n{\n    Stopping();\n    isJump = true;\n    Vector2 moveDir = _move;\n    anim.SetTrigger(\"Jumping\");\n    if(moveDir != Vector2.zero)\n    {\n        Vector3 dir = cam.forward * moveDir.y;\n        dir += cam.right * moveDir.x;\n        dir.Normalize();\n        dir.y = 0;\n        Quaternion targetR = Quaternion.LookRotation(dir);\n        transform.rotation = targetR;\n        rb.AddForce((transform.forward + Vector3.up) * jumpPower, ForceMode.Impulse);\n    }\n    else\n    {\n        rb.AddForce(Vector3.up * jumpPower, ForceMode.Impulse);\n    }\n    anim.SetBool(\"OnAir\", true);\n}\n\npublic void OnCam(InputValue value)\n{\n    m_look = value.Get&lt;Vector2&gt;();\n    cinemachineFreeLook.m_XAxis.Value += m_look.x * rotationSpeedCamX;\n    cinemachineFreeLook.m_YAxis.Value += m_look.y * rotationSpeedCamY * Time.fixedDeltaTime;\n}\n\n\npublic void FallEnd()\n{\n    StopEnd();\n}\n\n\nvoid Stopping()\n{\n    if(onGround)\n    rb.velocity = Vector3.zero;\n    stop = true;\n    anim.SetFloat(\"MoveX\",0);\n    anim.SetFloat(\"MoveY\",0);\n    anim.SetFloat(\"Moving\",0);\n    anim.SetBool(\"Move\",false);\n}\n\npublic void StopEnd()\n{\n    anim.SetBool(\"Move\", (_move.x == 0 &amp;&amp; _move.y == 0) ? false : true);\n    anim.SetFloat(\"Moving\", (_move.x == 0 &amp;&amp; _move.y == 0) ? 0 : 1);\n    anim.SetFloat(\"MoveX\", _move.x);\n    anim.SetFloat(\"MoveY\", _move.y);\n    rb.velocity = Vector3.zero;\n    stop = false;\n}\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Logica de Recojer<\/strong><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>public class Collection : MonoBehaviour\n{\npublic int Quantity = 0;\npublic int totalObjects = 10;\npublic TextMeshProUGUI textCount;\npublic TextMeshProUGUI winText;\n\nvoid Start()\n{\n    Quantity = 0;\n    UpdateCounter();\n}\n\npublic void UpdateCounter()\n{\n    if (textCount != null)\n    {\n        int remaining = totalObjects - Quantity;\n        textCount.text = \"Objetos restantes: \" + remaining;\n\n        if (remaining &lt;= 0)\n        {\n            textCount.text = \"\u00a1Todos recolectados!\";\n\n        } \n    }\n}\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Video<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Videojuego en unity uc\" width=\"800\" height=\"450\" src=\"https:\/\/www.youtube.com\/embed\/v1dtoUmFxeg?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"has-text-align-center\">Video. Autor\u00eda Propia<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Cr\u00e9ditos<\/strong><\/h2>\n\n\n\n<p><strong>Autor<\/strong>: <a href=\"https:\/\/niixer.com\/?s=Daniel+Forigua+Martinez\">Daniel Forigua Martinez<\/a><\/p>\n\n\n\n<p><strong>Editor<\/strong>:&nbsp;<a href=\"https:\/\/niixer.com\/?s=Carlos+Iv%C3%A1n+Pinz%C3%B3n\">Master- Ingeniero Carlos Iv\u00e1n Pinz\u00f3n<\/a><\/p>\n\n\n\n<p><strong>C\u00f3digo&nbsp;<\/strong>: UCMV-9<\/p>\n\n\n\n<p><strong>Universidad&nbsp;<\/strong>:&nbsp;<a href=\"https:\/\/www.ucentral.edu.co\/\">Universidad Central<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Referencias<\/strong><\/h2>\n\n\n\n<p>Accurate. (s.f.). <em>Berserker Mutant<\/em> [Modelo 3D]. Sketchfab. <a class=\"\" href=\"https:\/\/sketchfab.com\/3d-models\/berserker-mutant-accurate-271e55f3c5e9429f91d3a1ccc31d1f53\">https:\/\/sketchfab.com\/3d-models\/berserker-mutant-accurate-271e55f3c5e9429f91d3a1ccc31d1f53<\/a><\/p>\n\n\n\n<p>Ready Player Me. (s.f.). <em>Avatar personalizado<\/em> [Modelo 3D]. Ready Player Me. <a class=\"\" href=\"https:\/\/readyplayer.me\/avatar\">https:\/\/readyplayer.me\/avatar<\/a><\/p>\n\n\n\n<p>Sleepmesh. (s.f.). <em>Modelos 3D de gemas Vol. 1<\/em> [Modelo 3D]. CLIP STUDIO ASSETS. <a class=\"\" href=\"https:\/\/assets.clip-studio.com\/es-es\/detail?id=2041053\">https:\/\/assets.clip-studio.com\/es-es\/detail?id=2041053<\/a><\/p>\n\n\n\n<p>Unity Technologies. (s.f.). <em>Crear y usar scripts<\/em>. Unity. <a class=\"\" href=\"https:\/\/docs.unity3d.com\/es\/530\/Manual\/CreatingAndUsingScripts.html\">https:\/\/docs.unity3d.com\/es\/530\/Manual\/CreatingAndUsingScripts.html<\/a><\/p>\n\n\n\n<p>Unity Technologies. (s.f.).<strong> <\/strong><em>Visi\u00f3n general de los colliders<\/em>. Unity. <a class=\"\" href=\"https:\/\/docs.unity3d.com\/560\/Documentation\/Manual\/CollidersOverview.html\">https:\/\/docs.unity3d.com\/560\/Documentation\/Manual\/CollidersOverview.html<\/a><\/p>\n\n\n\n<p>Unity Technologies. (s.f.). <em>Unity Essentials Pathway<\/em>. Unity. <a class=\"\" href=\"https:\/\/learn.unity.com\/pathway\/unity-essentials\">https:\/\/learn.unity.com\/pathway\/unity-essentials<\/a><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>El presente proyecto, Buscador de Gemas en Tiempo R\u00e9cord, consiste en el desarrollo de un videojuego de plataformas en tres dimensiones utilizando el motor de desarrollo Unity. En este juego, el jugador asume el rol de un explorador que debe recolectar gemas dispersas en diferentes escenarios dentro de un l\u00edmiteSeguir Leyendo<\/p>\n","protected":false},"author":205,"featured_media":67479,"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":[689,228,31,214,66],"class_list":["post-67397","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-video-juegos","tag-c","tag-tecnologia-2","tag-tecnologia","tag-unity","tag-videojuegos"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Buscador de Gemas en Tiempo Record &#8211; Portal de noticias de tecnolog\u00eda, Realidad Virtual, Aumentada y Mixta, Videojuegos<\/title>\n<meta name=\"description\" content=\"En la creaci\u00f3n de juegos de 3D se encuentra una guia r\u00e1pida para la implementaci\u00f3n de tecnolog\u00eda Recolector Gemas Unity\" \/>\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\/2025\/05\/24\/recolector-gemas-unity\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Buscador de Gemas en Tiempo Record &#8211; Portal de noticias de tecnolog\u00eda, Realidad Virtual, Aumentada y Mixta, Videojuegos\" \/>\n<meta property=\"og:description\" content=\"En la creaci\u00f3n de juegos de 3D se encuentra una guia r\u00e1pida para la implementaci\u00f3n de tecnolog\u00eda Recolector Gemas Unity\" \/>\n<meta property=\"og:url\" content=\"https:\/\/niixer.com\/index.php\/2025\/05\/24\/recolector-gemas-unity\/\" \/>\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=\"2025-05-24T08:57:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-31T12:34:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/ImagenPortada.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1130\" \/>\n\t<meta property=\"og:image:height\" content=\"629\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Daniel Ernesto Forigua Mart\u00ednez\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daniel Ernesto Forigua Mart\u00ednez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Buscador de Gemas en Tiempo Record &#8211; Portal de noticias de tecnolog\u00eda, Realidad Virtual, Aumentada y Mixta, Videojuegos","description":"En la creaci\u00f3n de juegos de 3D se encuentra una guia r\u00e1pida para la implementaci\u00f3n de tecnolog\u00eda Recolector Gemas Unity","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\/2025\/05\/24\/recolector-gemas-unity\/","og_locale":"es_ES","og_type":"article","og_title":"Buscador de Gemas en Tiempo Record &#8211; Portal de noticias de tecnolog\u00eda, Realidad Virtual, Aumentada y Mixta, Videojuegos","og_description":"En la creaci\u00f3n de juegos de 3D se encuentra una guia r\u00e1pida para la implementaci\u00f3n de tecnolog\u00eda Recolector Gemas Unity","og_url":"https:\/\/niixer.com\/index.php\/2025\/05\/24\/recolector-gemas-unity\/","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":"2025-05-24T08:57:42+00:00","article_modified_time":"2025-05-31T12:34:42+00:00","og_image":[{"width":1130,"height":629,"url":"https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/ImagenPortada.png","type":"image\/png"}],"author":"Daniel Ernesto Forigua Mart\u00ednez","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Daniel Ernesto Forigua Mart\u00ednez","Tiempo de lectura":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/niixer.com\/index.php\/2025\/05\/24\/recolector-gemas-unity\/#article","isPartOf":{"@id":"https:\/\/niixer.com\/index.php\/2025\/05\/24\/recolector-gemas-unity\/"},"author":{"name":"Daniel Ernesto Forigua Mart\u00ednez","@id":"https:\/\/niixer.com\/#\/schema\/person\/7c13a2423ebc03631a59ecd2bf449c34"},"headline":"Buscador de Gemas en Tiempo Record","datePublished":"2025-05-24T08:57:42+00:00","dateModified":"2025-05-31T12:34:42+00:00","mainEntityOfPage":{"@id":"https:\/\/niixer.com\/index.php\/2025\/05\/24\/recolector-gemas-unity\/"},"wordCount":1100,"publisher":{"@id":"https:\/\/niixer.com\/#organization"},"image":{"@id":"https:\/\/niixer.com\/index.php\/2025\/05\/24\/recolector-gemas-unity\/#primaryimage"},"thumbnailUrl":"https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/ImagenPortada.png","keywords":["C#","Tecnologia","tecnolog\u00eda","Unity","Videojuegos"],"articleSection":["video juegos"],"inLanguage":"es"},{"@type":"WebPage","@id":"https:\/\/niixer.com\/index.php\/2025\/05\/24\/recolector-gemas-unity\/","url":"https:\/\/niixer.com\/index.php\/2025\/05\/24\/recolector-gemas-unity\/","name":"Buscador de Gemas en Tiempo Record &#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\/2025\/05\/24\/recolector-gemas-unity\/#primaryimage"},"image":{"@id":"https:\/\/niixer.com\/index.php\/2025\/05\/24\/recolector-gemas-unity\/#primaryimage"},"thumbnailUrl":"https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/ImagenPortada.png","datePublished":"2025-05-24T08:57:42+00:00","dateModified":"2025-05-31T12:34:42+00:00","description":"En la creaci\u00f3n de juegos de 3D se encuentra una guia r\u00e1pida para la implementaci\u00f3n de tecnolog\u00eda Recolector Gemas Unity","breadcrumb":{"@id":"https:\/\/niixer.com\/index.php\/2025\/05\/24\/recolector-gemas-unity\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/niixer.com\/index.php\/2025\/05\/24\/recolector-gemas-unity\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/niixer.com\/index.php\/2025\/05\/24\/recolector-gemas-unity\/#primaryimage","url":"https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/ImagenPortada.png","contentUrl":"https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/ImagenPortada.png","width":1130,"height":629},{"@type":"BreadcrumbList","@id":"https:\/\/niixer.com\/index.php\/2025\/05\/24\/recolector-gemas-unity\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/niixer.com\/"},{"@type":"ListItem","position":2,"name":"Buscador de Gemas en Tiempo Record"}]},{"@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\/7c13a2423ebc03631a59ecd2bf449c34","name":"Daniel Ernesto Forigua Mart\u00ednez","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/849c2fb7615dcd3690dcdc1d91f45a838882b080380e27d93a059f41e8c974cc?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/849c2fb7615dcd3690dcdc1d91f45a838882b080380e27d93a059f41e8c974cc?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/849c2fb7615dcd3690dcdc1d91f45a838882b080380e27d93a059f41e8c974cc?s=96&d=mm&r=g","caption":"Daniel Ernesto Forigua Mart\u00ednez"},"sameAs":["http:\/\/www.niixer.com"],"url":"https:\/\/niixer.com\/index.php\/author\/dforiguam\/"}]}},"jetpack_featured_media_url":"https:\/\/niixer.com\/wp-content\/uploads\/2025\/05\/ImagenPortada.png","_links":{"self":[{"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/posts\/67397","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\/205"}],"replies":[{"embeddable":true,"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/comments?post=67397"}],"version-history":[{"count":2,"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/posts\/67397\/revisions"}],"predecessor-version":[{"id":68139,"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/posts\/67397\/revisions\/68139"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/media\/67479"}],"wp:attachment":[{"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/media?parent=67397"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/categories?post=67397"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/tags?post=67397"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}