{"id":52345,"date":"2024-06-01T22:54:22","date_gmt":"2024-06-02T03:54:22","guid":{"rendered":"https:\/\/niixer.com\/?p=52345"},"modified":"2024-06-01T22:54:23","modified_gmt":"2024-06-02T03:54:23","slug":"the-truman-show-videojuego-android-unity-3d","status":"publish","type":"post","link":"https:\/\/niixer.com\/index.php\/2024\/06\/01\/the-truman-show-videojuego-android-unity-3d\/","title":{"rendered":"The Truman Show Videojuego &#8211; Android Unity 3D"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\"><strong>Introducci\u00f3n<\/strong><\/h2>\n\n\n\n<p>El desarrollo de <strong>videojuegos Unity<\/strong> en 3D se ha convertido en una habilidad esencial dentro del campo de la computaci\u00f3n gr\u00e1fica y la programaci\u00f3n. Unity, una de las plataformas m\u00e1s populares y vers\u00e1tiles para la creaci\u00f3n de videojuegos, ofrece herramientas robustas para dise\u00f1ar y desarrollar juegos inmersivos y de alta calidad. Esta gu\u00eda est\u00e1 dise\u00f1ada para estudiantes y profesionales que deseen incursionar en el mundo del desarrollo de <strong>videojuegos Unity<\/strong> en 3D, utilizando herramientas complementarias como <a href=\"https:\/\/www.blender.org\/\">Blender<\/a> y <a href=\"https:\/\/www.mixamo.com\/\">Mixamo<\/a> para la animaci\u00f3n de personajes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Contenido<\/h2>\n\n\n\n<p>Esta gu\u00eda proporciona un enfoque paso a paso, comenzando con la configuraci\u00f3n inicial de Unity, pasando por la creaci\u00f3n y animaci\u00f3n de personajes, y culminando con la implementaci\u00f3n de mec\u00e1nicas b\u00e1sicas y configuraciones de escena. Adem\u00e1s, se incluyen preguntas y actividades para afianzar los conocimientos adquiridos, facilitando un aprendizaje interactivo y aplicado.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Objetivo<\/h2>\n\n\n\n<p>El objetivo principal de esta gu\u00eda es no solo ense\u00f1ar los aspectos t\u00e9cnicos del desarrollo de <strong>videojuegos Unity<\/strong> en 3D, sino tambi\u00e9n inspirar la creatividad y la innovaci\u00f3n en los desarrolladores, alent\u00e1ndolos a explorar nuevas posibilidades y a superar los desaf\u00edos que puedan surgir en el proceso de desarrollo. Con esta gu\u00eda, los lectores estar\u00e1n equipados con las habilidades necesarias para crear sus propios videojuegos 3D, desde la conceptualizaci\u00f3n hasta la ejecuci\u00f3n final.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Implementaci\u00f3n<\/strong><\/li>\n<\/ol>\n\n\n\n<p><strong>Paso 1&nbsp;<\/strong><\/p>\n\n\n\n<p>Abrimos Unity, le damos click en <strong>add Project<\/strong>, luego tenemos que escoger que sea para 3D, le colocamos el nombre al proyecto que le queramos dar y le damos click en donde dice <strong>Create Project<\/strong>&nbsp;<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/PhnialUKO8ywEQnCJqeh7Fco8iRDUXg7bHN_JMBxsCMyEA_ntp5SEoRLW36IV3cd3UZCp6XVrKmLVaPLySM414l63PXuO8lRvcy7RNY9ydlzSNDUcSggfKkyzQvNb8IJ8dl_3apMqW3jEFYDGWTxew\" alt=\"\"\/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Cuando se cargue se ver\u00e1 algo as\u00ed<br><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/8tFxWWGDXkY8szEZp12oTf75EoQeLfKYw9ipKa-scB8V4ZQoj8ZWggq7OvNAdiqCmK-EGwaDEJwIjn-Riy9_Hy7J6QKhAPbVJugDpVifoeat24Hth5mt4jLcyBoHJ5YOJ3fNQWeVYMU0NM3g5lS-9A\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 2<\/strong><\/p>\n\n\n\n<p>Pasaremos hacer una configuraci\u00f3n adicional antes de empezar con la construcci\u00f3n del videojuego y es la siguiente nos vamos a la pesta\u00f1a de File en Unity y le damos click donde dice <strong>Build Settings <\/strong>y le damos click donde dice Android y por \u00faltimo le damos click donde dice <strong>Switch Platform&nbsp;<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/lSOlCpAxuYZQzz1h2ibo_ppftN8DlXCQC63GZm-j2HESXkpIoULDKs7tN1iYXWEpGWs0ECpB0nKCQNn2AbqVaZmrqBPzJcKtfodHmZreFPic2kQ5fuoJ_kCdYjfv6c3mXarfLW6UGhj0kWCbBXZesg\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 3<\/strong><\/p>\n\n\n\n<p>Ahora vamos a la siguiente opci\u00f3n que se llama <strong>Player Settings, <\/strong>vamos a donde dice player y vamos a la opci\u00f3n que dice <strong>Settings for Android \/ Active for Handing <\/strong>seleccionamos el Both y le damos click en guardar (apenas lo hagas el mismo unity se reiniciara solito, recuerda guardar siempre)<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/UyAW7SJSN7AweRAv6f7y30tA9M1TNJYoEfEhOGgycn0xs28CruYyPY4fbALVL6AoLBxsgurS42Z0UjP0VosXmyfQG3oBqrXfiO2RyuUQsnYkjpRn-RrbSGt4ZGT4SAj94Iw4uthQVzRffGDxigT46A\" alt=\"\" style=\"width:1140px;height:auto\"\/><\/figure>\n\n\n\n<p><strong>Paso 4<\/strong><\/p>\n\n\n\n<p>Ahora una vez se nos haya abierto otra vez el unity vamos nuevamente a Project Settings a la parte de Player y buscamos la opci\u00f3n llamada <strong>Allowed Orientation for Auto Rotation <\/strong>y desmarcamos la opci\u00f3n de <strong>Portrait y Portrait Upside Down, <\/strong>esto se hace ya que el juego lo haremos adaptado para m\u00f3vil pues vamos a querer siempre tenerlo en horizontal&nbsp;<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>Paso 5&nbsp;<\/strong><\/p>\n\n\n\n<p>Vamos a la p\u00e1gina llamada <a href=\"https:\/\/www.cgtrader.com\/\">cgtrader<\/a><strong> <\/strong>esta pagina es para poder buscar nuestros personajes que vamos a utilizar el paquete que vamos a utilizar es este, no se tiene en cuenta el unity store ya que los precios de los paquetes son muy elevados por otro lado el m\u00e1s barato cuesta 13 d\u00f3lares y solo viene 5 personajes en cambio el que se seleccion\u00f3 viene m\u00e1s de 30 personajes que va a venir perfecto para adaptarlo al juego que vamos hacer<br><br><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"312\" src=\"https:\/\/lh7-us.googleusercontent.com\/31WoVP4huEjIqGbvnVyJSpBbg3xnWt2isM0PUeriOOPBMBrPw73ai2WYqDFRZYFCPqWTxUs_ZtOBEzSPabKWVziYWIMBbtqjNSwLkyfFXMtMT5qeZAsflDZRxtd56VHygcSyp5sMVxjc3foNSlKRAw\"><\/p>\n\n\n\n<p><strong>Paso 6&nbsp;<\/strong><\/p>\n\n\n\n<p>Descomprimimos la carpeta que se nos descarg\u00f3 con los assets que compramos, para eso creamos una nueva carpeta ya que por el momento solo vamos a seleccionar el personaje principal, se selecciona el c21 ya que es la carpeta que mas completa viene por lo tanto se nos facilita el personaje ya que viene ya con la animaci\u00f3n y el modelo incluido&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/0Y5fW_KqyspUi_quHdvdGSgw3IaJhB_SzGx8AT7H1C9SLyMK52v-h--FXIpUhITiAJgNqaKfNThYvUMIWmmrwoK6ntAsskO2dQe4EWAKfa9QJVYKIatLi1eaMBKMnRaBVIbe2JMG8uislrA6UZLzfg\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 7<\/strong><\/p>\n\n\n\n<p>Ahora lo que vamos hacer es convertir el archivo que tenemos del personaje de dae a fbx para eso se hace mediante la pagina llamada <a href=\"https:\/\/3d-convert.com\/en\/\" target=\"_blank\" rel=\"noreferrer noopener\">3D-CONVERT<\/a>, ya que con esta conversi\u00f3n nos servir\u00e1 para poderlo exportar en <a href=\"https:\/\/www.mixamo.com\/#\/\">Mixamo<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/cRs6Ulu155_Ey_kl0QvaLbKDfMIRbZ6tpNJuDseDTu7FPNsogWB6Jp9_ObHze-4hh5Ad2pFU99eULEFA0TfZHMV-VWPpHpDfO_jWU4ANxp7G08DW2RSUnW0V9lfOnkmIwC9vp-yFIh3sK5-74LY10A\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 8<\/strong><\/p>\n\n\n\n<p>Vamos a <a href=\"https:\/\/www.mixamo.com\/\">Mixamo<\/a><a href=\"https:\/\/www.mixamo.com\/#\/\"> <\/a>y subir el character que nosotros convertimos a fbx<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/W0cdmGW0wXXfKY71NU3VxtxJDIdAj3Pe-v2uIOKUzxexHulHc_9cwC_NXQ0zQ5XgASRMvXTkp9HK7TxgMWYCrbocsfmldgmIVM78SazsBac2aZB2-PnW1OFuAZxsqIMehVj2gLGWX9zIFRQKxkpeBw\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Parte 9<\/strong><\/p>\n\n\n\n<p>Una vez hecho eso lo que haremos ser\u00e1 escoger las animaciones que vamos a querer para el personaje, es importante dejar dos opciones, la primera es la parte de la skin es importante dejarla con la opci\u00f3n de<strong> <\/strong>With Skin y la otra opci\u00f3n que tambi\u00e9n es importante es la de Keyframe Reduction tenemos que fijarnos que tenga la de uniform, esto es mas que todo para que se nos descarga la animaci\u00f3n con la skin del personaje que subimos a <a href=\"https:\/\/www.mixamo.com\/#\/\">Mixamo<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/TLvgqMe67qKfBMEEv1xbX_ztUIEGwgi8lABksKKL_hv9TjMk6s8o82M2pxCFVcR31NR2aJlPBne3gzSWB73eSyzsYQ5ymI-bFvkDBnwKo8m0z9A5Wshd-mXbTK61uHkQLkxHYyQGIAZCD7cgapHhQg\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/6fpp4DyANuKxEM_e9LT5UW6liSx2_y-9spUX5XCwBM5_4rfB5C5oCOj7MxSmkswlFhP1_dVDqkTLNHmKN7Te9ImqcG-UsZeoU70u9z6kj3MdZkn6-5_QplSSEpnaBvll9tI0AsDAYNCtlIKQrLjXeA\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/uFKLxa8eCw89xNI4CMQdNn-mFqUorBy54_gl_v9cU5-8iVykmDFXIw4WTnKH1Xr8hyP1yYN-6POJudGEpIOqihREcT8jDe2O6dwbbPApldbdDueUXBp5iDBLnhzDI7AiHBCFJ7ea6t2qf6e-mRS5xQ\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/Gp1Tobw2pHON-tKzdoUC-gUl_WQx4nGby2dY9MGMjSln7WiQl21lrji46e105gYpZethGCNyQgMoRXGtRqxCUuHueZq87y3GqFZVjOUNu_I2TRpUt9PQeHlz2U6KYvR2aosY-GyGB2MMeIZ92xt0TQ\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 10<\/strong><\/p>\n\n\n\n<p>Creaci\u00f3n de la carpeta llamada Character dentro de la carpeta llamada Assets&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/q7M6RAgz15Eeo4DrJ50cYIhfuOCWy7dUxILY5T8_VI4Kfy_wBeHRJaun9VHCIflMF6QYm6VnIYDIlm5nzptuAPG6ncAaGmHqE8dXSfG2F2cNeSHd3OpreJZTKPRZm5HA9dibAYtikf93nBW1i_QW3w\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 11<\/strong><\/p>\n\n\n\n<p>A esa carpeta seleccionamos todas las texturas que tenemos, seleccionando el personaje que ser\u00e1 nuestro personaje principal&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/vK1zLig_yKmbzDmmRlg0fIAljDqVGB1DoTtVQRVd1s7R8YO0SfYdh3WJFH93LCgpigKnvz4ss4ufg1kz_PDvp7kOPrQfQklnUUPHGRhQC-QGSVuOPstKPe93WIL284ZLbpmGsLIQiuVIeszKoA5xiA\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 12<\/strong><\/p>\n\n\n\n<p>Ahora de la misma manera hacemos con las animaciones que descargamos las seleccionamos y las colocamos en la carpeta anterior<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/Q6bGLvpoRldSoCD5mTjahAXp4OZwXELcw0ewd4E2W5YhvHoZ7TeadV_0RyskCII2V3cDQWoFkXn2pKAgeDX0V3WIX8ebhUbATztjkuNX_0cEMfD3fkR4NHsKtqsHsGXvBrUxE6TU6WtoVlK-EoJICA\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 13<\/strong><\/p>\n\n\n\n<p>Una vez hecho eso lo que vamos hacer es apartar las animaciones de los modelos que se nos descargo de <a href=\"https:\/\/www.mixamo.com\/#\/\">Mixamo <\/a>solamente utilizaremos las animaciones de cada modelo y nos quedara algo as\u00ed&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/HgZ2Zbn5eUYAYuCTkqQgDT3ylcNPbsnWRdEKjd48ianp3GF6ISN1IW8p7qDkRAOm_Ru_3y3zFNaAovMaf4x_ay_HO9ufMA9YHlZZqPAQAk5eLPV-Exn5Ayre13M1J4sTbyPCAMG2LHCyN6bYtmPXDw\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 14&nbsp;<\/strong><\/p>\n\n\n\n<p>Ahora lo que hacemos es que al personaje le vamos a relacionar un Animator, para poderle asociarla un Animator Controller<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/9Eugk9Fsphi87o2-0tu0GOHkh-XJoywe9bAcOXVnZ6Cs44gYLcDrfnr-wmKXWyZhryK17j6TYRPj7UyWsQoFNMBUaxufYVePOiWC7nUPGHSX21BgloKAqIjDZdKlfLq26vcwvC7iQ3-UKAHesHKZ8Q\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 15<\/strong><\/p>\n\n\n\n<p>Configurando el animator y aplic\u00e1ndole configuraci\u00f3n sencilla al animator, esto se hace creando un nuevo par\u00e1metro llamado Running, este par\u00e1metro es bolean, entonces si Running es true pues significa que puede correr por lo tanto har\u00e1 la animaci\u00f3n de correr pero si Running es false quiere decir que no puede correr porque probablemente el personaje esta quieto entonces que haga la animaci\u00f3n del idle que fue la que descargamos anteriormente<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/LneWrC5QqOuSHDXHbCswZKCz9zBnbzhTS1tKMmbcBTlDFojaO1PLlYZXpC-BmHIPpLaPd9CinUFa1HW89kIMhmXMXS0cTzjRTrPc4WqNd-pn6TTp-OnrngXpK6T_sPJmq5Y8jDe7DxzFiqIiXiXqdg\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 16<\/strong><\/p>\n\n\n\n<p>Ahora lo que vamos hacer es configurar el joystick vamos al <a href=\"https:\/\/assetstore.unity.com\/packages\/tools\/input-management\/joystick-pack-107631\" target=\"_blank\" rel=\"noreferrer noopener\">Asset Store<\/a> y nos descargamos este paquete&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/3L6hTbxlXLRk0_y5hfbO2GexQlaRhw5DZqury1C_1PPmNEpNRVqQexepXWzCfBzScicgPJG3kzRll92lzfYQQhypkTHeW6dqwaXli8fKi_-dPvglEGnDOy_iz8UMX90R09369I79FD5LquprdmS2Vw\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 17&nbsp;<\/strong><\/p>\n\n\n\n<p>Cuando lo tengamos descargado lo que vamos hacer es darle en el bot\u00f3n que dice import e importamos todo<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/ZDoASgToFBPvkb8UVB63BLh4VKlCyNBoDmWfSWj_hQi2t8ZV0qqFmNtBQxRIPv0TRYEueUMNrgn5LMVqKjjIS95zlUlsDSgawNtTikfXpZTb07N-GAojlBXxQQEzrKRjApgt2il7AefjwxuNgCWyvA\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 18&nbsp;<\/strong><\/p>\n\n\n\n<p>Para agregar el joystick es tan f\u00e1cil y sencillo como agregarlo a un canva y colocar el prefabs que queramos dentro del canvas como hijo&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/em0q2s7STZAvO2DHgLkTNsZXH-Cw1upHpdxaJUgSrC8F3hvnoIrxOnVN5PSSD7iZPwwJQok9PLCcTpA4qNe8fw9hXjGfq2--qMDmh44CGXGq6oegQ9pnN8n7kVqLff83WbAfc1SsFva8voY3sTy0Fg\" alt=\"\" style=\"width:1140px;height:auto\"\/><\/figure>\n\n\n\n<p><strong>Paso 19<\/strong><\/p>\n\n\n\n<p>Configuraci\u00f3n del jostick y controlador de Camara, lo que hacemos es que tenemos que meter el joystick que nos descargamos dentro de un canva entonces vamos y hacemos eso<br><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/FLm7aFC8RAmyh2Xl0CM3kyx6Ir7rnCiKRBPBZH2h8vz4Lrh7infyXf7Fo0OhseTLBv1Rsu9LWtfMp0fhN1H-ZEQzQ1D59JKSWvEBLbOXML6zofkl8dNYXvXGy0-wm7HwAxJ2dgGC6LuX\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 20<\/strong><\/p>\n\n\n\n<p>Una vez que tenemos el jostick en el canva procedemos a crear un script para manejar la parte del jostick y procedemos tambi\u00e9n a configurar la c\u00e1mara, nuestro caso crearemos un archivo llamado PlayerController donde haremos la configuraci\u00f3n del joystick<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/NpL06rkXFD2sU4czzauSzjkajiBCLJcA6iUzH61rQlCCfzXG42x7LLbJW2njJfCyQlzi6OITYeqkb6DRl4xTzIuTlFOoxIrzf8cnAoPFwqZ54ZwL4c_gQ4vFy238732x3vpTQH3auwM6\" alt=\"PlayerController\"\/><\/figure>\n\n\n\n<p>Script para el archivo de CameraController<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using System.Collections;\nusing System.Collections.Generic;\nusing TMPro;\nusing UnityEngine;\n\npublic class PlayerController : MonoBehaviour\n{\n   \n    &#91;SerializeField] private FixedJoystick joystick;\n    &#91;SerializeField] private Animator animator;\n    &#91;SerializeField] private float moveSpeed;\n    &#91;SerializeField] private float _jumpForce;\n    &#91;SerializeField] private Transform _cameraTransform;\n    &#91;SerializeField] private bool Grounded;\n\n\n    private float _maxFallSpeed = 20f;\n    private float _currentFallSpeed = 0f;\n\n    private CharacterController _controller;\n    private Vector3 _moveDirection = Vector3.zero;\n    private float _vertical;\n    private float _horizontal;\n\n    private void Start()\n    {\n        _controller = GetComponent&lt;CharacterController&gt;();\n    }\n\n    \/\/ Update is called once per frame\n    void Update()\n    {\n\n        _vertical = joystick.Vertical + Input.GetAxis(\"Vertical\");\n        _horizontal = joystick.Horizontal;\n\n        Vector3 cameraForward = Vector3.Scale(_cameraTransform.forward, new Vector3(1, 0, 1)).normalized;\n        Vector3 moveDirection = _vertical * cameraForward + _horizontal * _cameraTransform.right;\n\n        _moveDirection.x = moveDirection.x * moveSpeed;\n        _moveDirection.z = moveDirection.z * moveSpeed;\n\n        if (_controller.isGrounded)\n        {\n            _currentFallSpeed = 0f;\n\n            if (Input.GetKeyDown(KeyCode.Space)) jump();\n\n                foreach (Touch t in Input.touches) if (t.tapCount == 2) jump();\n        } else\n        {\n            _moveDirection.x *= 0.7f;\n            _moveDirection.z *= 0.7f;\n\n            if(_moveDirection.y &lt; -_maxFallSpeed)\n            {\n                _moveDirection.y = -_maxFallSpeed;\n            }\n            else\n            {\n                _currentFallSpeed += Time.deltaTime * 20;\n                _moveDirection.y -= _currentFallSpeed* Time.deltaTime;\n            }\n        }\n\n        if (_horizontal != 0 || _vertical != 0)\n        {\n            transform.rotation = Quaternion.LookRotation(new Vector3(_moveDirection.x, 0, _moveDirection.z));\n        }\n\n        _controller.Move(_moveDirection * Time.deltaTime);\n\n        animate();\n\n\n\n    }\n\n    private void animate()\n    {\n        animator.SetBool(\"Grounded\", _controller.isGrounded);\n\n        if (_controller.isGrounded)\n        {\n            animator.SetBool(\"Jump\", false);\n            if (_horizontal != 0 || _vertical != 0)\n            {\n                animator.speed = Mathf.Min(Mathf.Max(Mathf.Abs(_vertical), Mathf.Abs(_horizontal)) + 0.1f, 1);\n                animator.SetBool(\"Running\", true);\n            }\n            else\n            {\n                animator.speed = 1;\n                animator.SetBool(\"Running\", false);\n            }\n        }\n    }\n\n    private void jump()\n    {\n        _currentFallSpeed = 3;\n        _moveDirection.y = _jumpForce;\n        animator.SetBool(\"Jump\", true);\n    }\n\n\n}\n<\/code><\/pre>\n\n\n\n<p><strong>Paso 21<\/strong><\/p>\n\n\n\n<p>Antes de colocar el script al componente de nuestro mu\u00f1eco lo que vamos hacer es que vamos a crear un script para la c\u00e1mara ese script nos va a permitir poder perseguir siempre al mu\u00f1eco lo que nos servir\u00e1 para cada vez que se mueva<br><br><\/p>\n\n\n\n<p>Imagen del archivo del script de camera controller<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/3-5KeJbE0rhtV7-Bo0qgy6V0ncsYvgRwP1cY-wrJ-bWc-_JtGAiVNPWNDBEW1fJqEEECcKHCcKH8pGwsVPprRd2x3WltcQ9yAiKW9mpZdfikTICkrTLRB8dggw4nV36__kBE5flcV_Jv\" alt=\"CameraController\n\" style=\"width:676px;height:auto\"\/><\/figure>\n\n\n<h4 class=\"wp-block-post-title\">The Truman Show Videojuego &#8211; Android Unity 3D<\/h4>\n\n\n<pre class=\"wp-block-code\"><code>using System;\nusing UnityEngine;\npublic class CameraController : MonoBehaviour\n{\n    &#91;SerializeField] private Transform _target;\n    &#91;SerializeField] private float _distance;\n    &#91;SerializeField] private float _height;\n\n    private float _currentRotationAngle;\n    private float _currentHeight;\n    private Quaternion _currentRotation;\n    private float _currentDistance;\n\n    void Update()\n    {\n\n        if (Application.platform == RuntimePlatform.Android)\n        {\n            foreach (Touch t in Input.touches)\n            {\n                if (t.phase == TouchPhase.Moved &amp;&amp; t.position.x &gt; Screen.width \/ 3)\n                {\n                    _currentRotationAngle += t.deltaPosition.x * 0.4f;\n                    _currentHeight -= t.deltaPosition.y * 0.01f;\n                    _currentHeight = Mathf.Min(Mathf.Max(_currentHeight, -1.5f), 1.5f);\n                }\n            }\n        }\n        else if (Application.platform == RuntimePlatform.WindowsPlayer || Application.platform == RuntimePlatform.WindowsEditor)\n        {\n            if (Input.GetMouseButton(0) &amp;&amp; Input.mousePosition.x &gt; Screen.width \/ 3)\n            {\n                _currentRotationAngle += Input.GetAxis(\"Mouse X\") * 6;\n                _currentHeight -= Input.GetAxis(\"Mouse Y\") * 0.2f;\n                _currentHeight = Mathf.Max(_currentHeight, -1.5f);\n                _currentHeight = Mathf.Min(Mathf.Max(_currentHeight, -1.5f), 1.5f);\n            }\n        }\n        \/\/Calculate current rotation angle and height\n        _currentRotation = Quaternion.Euler(0, _currentRotationAngle, 0);\n        _currentHeight = Mathf.Clamp(_currentHeight, -20, 80);\n        Vector3 idealPosition = _currentRotation * Vector3.forward * _distance;\n        if (Physics.Raycast(_target.position + new Vector3(0, 0.5f, 0), -idealPosition,\n                out RaycastHit hit, _distance) &amp;&amp; hit.transform.tag != \"Player\")\n        {\n            _currentDistance = Vector3.Distance(_target.position, hit.point);\n        }\n        else\n        {\n            _currentDistance = _distance;\n        }\n        Vector3 targetPosition = _target.position - _currentRotation * Vector3.forward * _currentDistance;\n        targetPosition.y = _target.position.y + _height + _currentHeight;\n\n        \/\/Set the camera position and rotation\n        transform.position = Vector3.Lerp(transform.position, targetPosition, Time.deltaTime * 20f);\n        transform.LookAt(_target.position + Vector3.up * 1.5f);\n    }\n}<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Este archivo se tiene que agregar al componente llamado Main Camera, cuando se agrega al objeto de acuerdo al c\u00f3digo toca agregarle la distancia y la altura y aparte tambien tenemos que pasarle un target en nuestro caso le pasamos el target de nuestro personaje principal llamado Main Character Body <\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/aWEtcAh0URhfw3Ik4hsxMDFQEXfVUOq_RUiNsqPd9mLfvKeM4VGwn2R_aLVzs_VdaB6qSXlBnYkEqOazjYyeF4OmFAdd65VlZYmjo2a5svD3zErdpwPy-oT8o1vrNY2G8VuJbjcxTgdv\" alt=\"Main Camera Game Object\" style=\"width:509px;height:auto\"\/><\/figure>\n\n\n\n<p><strong>Paso 22<\/strong><\/p>\n\n\n\n<p>Antes de seguir d\u00e1ndole mas funcionalidades al personaje lo que hacemos es que vamos a crear un&nbsp; animator para el personaje esto nos va a servir para colocar animaciones tales como: Correr, Saltar y Caer, para esto utilizamos par\u00e1metros bolean, a su vez para algunas condiciones se le quito el (Has Exit Time).<\/p>\n\n\n\n<p>Hay que recordar que para cada estado se tiene que colocar la animaci\u00f3n que se sac\u00f3 de mixamo<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/LgnQ4QqNxAj33tXwfn5hAhf2vtdAINZj_DxYOnNuy32TzYeEhMhNkDI9uyTJtHhbA7Grih3DlFFBnTZWnCt-iwmJuOx1PVdC7fPdubnvvg2ywuHmYTRqriQi0yb3s-GFSxvHGpl6BhhT\" alt=\"Animaci\u00f3n correr\" style=\"width:491px;height:auto\"\/><\/figure>\n\n\n\n<p>Flujo de animator completo para el personaje<\/p>\n\n\n\n<p>esto b\u00e1sicamente funciona de la siguiente manera tenemos ya b\u00e1sicamente 3 par\u00e1metros dichos par\u00e1metros son bolean,  dentro del animator lo que se hace es que se crea un nuevo estado y a ese estado se le agregan las animaciones que hab\u00edamos descargado anteriormente de Mixamo<\/p>\n\n\n\n<p><strong>Explicaci\u00f3n de la funcionalidad del <a href=\"https:\/\/docs.unity3d.com\/es\/530\/Manual\/class-AnimatorController.html#:~:text=Un%20asset%20Animator%20Controller%20es,para%20un%20personaje%20u%20objeto.\">Animator Controller<\/a><\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Idle -> Running: La transici\u00f3n se realiza cuando el par\u00e1metro Running es true. Si Running es true, el estado cambia a Running y se reproduce la animaci\u00f3n correspondiente.<\/li>\n\n\n\n<li>Running -> Idle: La transici\u00f3n se realiza cuando el par\u00e1metro Running es false. Si Running es false, el estado cambia a Idle y se reproduce la animaci\u00f3n correspondiente.<\/li>\n\n\n\n<li>Running -> Jump: La transici\u00f3n se realiza cuando el par\u00e1metro Jump es true. Si Jump es true, el estado cambia a Jump y se reproduce la animaci\u00f3n correspondiente para saltar.<\/li>\n\n\n\n<li>Running -> Falling: Para realizar esta transici\u00f3n, se deben considerar dos par\u00e1metros: Grounded y Jump. La transici\u00f3n se produce si ambos par\u00e1metros, Grounded y Jump, son false. Si ambos son false, el estado cambia a Falling y se reproduce la animaci\u00f3n correspondiente para caer.<\/li>\n\n\n\n<li>Jumping -> Running: Para realizar esta transici\u00f3n, se deben considerar dos par\u00e1metros: Grounded y Jump. La transici\u00f3n se produce si ambos par\u00e1metros, Grounded y Jump, son true. Si ambos son true, el estado cambia a Running y se reproduce la animaci\u00f3n correspondiente.<\/li>\n\n\n\n<li>Jumping -> Idle: Para realizar esta transici\u00f3n, se deben considerar dos par\u00e1metros: Running y Grounded. La transici\u00f3n se produce si el par\u00e1metro Running es false y el par\u00e1metro Grounded es true. Si Running es false y Grounded es true, el estado cambia a Idle y se reproduce la animaci\u00f3n correspondiente.<\/li>\n\n\n\n<li>Jumping -> Falling: La transici\u00f3n se realiza cuando el par\u00e1metro Grounded es false. Si Grounded es false, el estado cambia a Falling y se reproduce la animaci\u00f3n correspondiente para caer.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/N9UqfYU8rvcEDKhfqGDz6-1UaxkZ9aV_KHoKDDrKVE85HQVB2yDDeN7ZC4Xmm0M6Poe2EWCVglmvq2VvUJKBgjfZaM5fepL4V3jw-qCCmCTwuo_q2FORaNIT4ofBaVWPVois8EqQoURy\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 23<\/strong><\/p>\n\n\n\n<p>Ahora s\u00ed viene lo divertido tenemos que quitar la parte de rigibody no lo utilizamos ya que a veces nos da dolores de cabeza y aparecen comportamientos extra\u00f1os por ello se decidi\u00f3 mejor trabajarlo con un componente llamado Character Controller, con esto se puede sustituir la fisica del rigibody ese componente se le agrega al gameObject del personaje<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/bQI_I8v1dAWBfwdaHP8ePR5AQTWril7E-gaBnvDzpV_lgGMnbaJIMaRk9WA_kG0jx0AQYSriHf1iqxASG-qRPVsT4GPxDjdLIAw-vD-FTZ1LxTG5R3uU6xLeeZQALF32DZKX4OAvnGFj\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 24&nbsp;<\/strong><\/p>\n\n\n\n<p>Ya teniendo la funcionalidad m\u00ednima del personaje y de ver que si estaba funcionando como se esperaba se procede agregar el mapa, el mapa se sac\u00f3 de asset store uno llamado <strong>Slavic Medieval Environment<\/strong>, se toma esto mas que todo por tema de velocidad si nos ponemos a crear un Terrain desde cero podemos estar hasta horas haciendo ese terreno, aparte de eso esa librer\u00eda o package esta gratis<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/mMcLqWIleA5r_1nUfGO3qUsdJDHhQWp52K9ToHswUE0sxANGIPJBE6LsKatld8s6L0mUjLMWHblkTbCODSfyHC05YDMTQtjJCIVfODJiuKux2N_7oo1J8plWLGE9-zZz3VraL5heyk3S\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 25<\/strong><\/p>\n\n\n\n<p>Una vez se descarga del Aseet Store lo que hacemos es que la importamos desde nuestro Package Manager e importamos todo<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/mdz6q-eEKWvro5xmn_NWunSTc77JneQZ9KgaKU0mClTgdvXn1f9kBOYqxP0ENYYPaG94FRio3G8_zZU2ZT0-HiiN2Jp4kGwQSws-eyzkVVTPzDBIeLwHELg5eXdea4GyNVy6en-chjR-\" alt=\"\"\/><\/figure>\n\n\n\n<p>Una vez lo importamos lo que hacemos es ir a nuestros Asset al nombre de la carpeta que se nos importo, pr\u00e1cticamente ahi de todo tenemos, texturas, tambi\u00e9n tenemos ya prefabs configurados, es una ayuda muy grande contar con este tipo de ayudas si lo hubi\u00e9ramos hecho nosotros solos nos hubiera tomado mucho m\u00e1s tiempo<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/oT_jSVgG_LGPTwG030XPfAKKZKw_FO6qPEEFTjeFlVc4mdbZZ_8Hn7EE2LAj5dCCmzYMKwsGpl2KNnHRuyBKlhcbRuPwS8X2TUCnyjC2C8tJg8GfTTrX5pJvSDkovJfX82UGzDYHYnHG\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 26<\/strong><\/p>\n\n\n\n<p>Creamos todo el ambiente del mapa del videojuego y ajustamos el personaje y la c\u00e1mara&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/1KLSEocPIcnlY9X4-MkxVsEWVY58oFdZHWbUV3xc019RfqchtR6kFHVEsWRT5cJAjSgYj7eGHgJTJJqDQ5BOn8U2YGakhi08Qs7tQQM2w2q_VkMEUGpSxN-HwpMac2gPDdmVoLwMKC7Z\" alt=\"\"\/><\/figure>\n\n\n\n<p>lo que hicimos es que acomodamos el mapa teniendo en cuenta para donde giraba el mu\u00f1eco ya que si cambiaba de rotaci\u00f3n se nos modifica el script que hab\u00edamos realizado anteriormente para el seguimiento de la c\u00e1mara al jugador<\/p>\n\n\n\n<p><strong>Paso 27<\/strong><\/p>\n\n\n\n<p>Creaci\u00f3n de prefabs para el tema de los items que queremos que el mu\u00f1eco recoja, en primer lugar creamos el prefab llamado Energy Core, este prefab nos simulara que es una zanahoria<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/9NBWSySgvs9n_qed0prazOga6qrdeUZNaV3BoXi6308H7iE_LGEdhtjZO4yrGOWKM8GfMKJqShA1VPTJlH-UbNO_wqWsJvACz-TdvNZqmdWTLWuYP3fpiqJ24HOxT8UZpmgpKScE9X4u\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 28&nbsp;<\/strong><\/p>\n\n\n\n<p>Para el prefab se tiene que crear una animaci\u00f3n una para que gire y aparte de eso se le agrega&nbsp; un Halo<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/jZixqxlUdSU3FKKANWbQ8u0RVYrhZ83A976sHiYrh2cLMHd5RMBKaQJRhGCBMg_YO2zk_8F8q6fTjtdVRmmawkPyVuwimmX8qgg74Hc0VJDhsdpaKy9GIddmLYND41iaHwka7Nl7EyLL\" alt=\"\"\/><\/figure>\n\n\n\n<p>aparte del halo se le hace una configuraci\u00f3n al particle system, dicho particle system se le cambia a cono<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/4HKzNt9vgGANiY_HehVp6L_kCuo6BRhXlu3bRgxAmKLpoatcy1dFdstkvxeoo-puFdZeRY5xagUWnRl-3PtUQTtOXJjIxbkZNSJBnZQ4m_4PVP-YlHMhqOe7RDwusXbQBW54cBkO_ODQ\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 29&nbsp;<\/strong><\/p>\n\n\n\n<p>Se crea dentro del GameObject llamado Energy Core un nuevo gameObject llamado camera esto lo hacemos para hacer la simulaci\u00f3n de la camara cuando el personaje absorbe una zanahoria, a dicho gameObject tambien se le asigna un Animator&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/vBAivvZq9DcIgbxFNghQ3lIBkjpHxl_XNvIerrjSfswWodJq3l0K-mO-RnZOmXmdHnPSbpd8OW1zhtoyhZX8NO7QhiB5A8jpuZdd8EP1a_dTf4mCT_tl4dokaY_ghK7HpOIGSRB0OJZX\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 30&nbsp;<\/strong><\/p>\n\n\n\n<p>Se hace la importaci\u00f3n de otra animaci\u00f3n de mixamo, esta animaci\u00f3n lo que hace es celebrar cada vez que el personaje absorba un EnergyCore, tanto el VictoryModel, el camera, y el particle System se desmarcan esto se hace ya que lo queremos ocultar con un script haremos la activaci\u00f3n de esos GameObject, hay que recordar que la idea de cada componente que vemos que es re utilizable lo volvemos un prefab eso se hace para despu\u00e9s utilizarlo con las mismas animaciones en otra escena (toca tener cuidado de c\u00f3mo editan el prefab ya que si lo hacen\u00a0 en un prefab que est\u00e1 compartiendo con otro en otra escena entonces se modificar\u00e1n los dos lados si el prefab va a estar diferente es mejor hacer control + D para hacer un duplicado a ese prefab)<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/qhSD76AD3bf2O7lVWOhDVl9P5Twn1F3eLKFBPZ3U25n3vfIGAYlC398sifIY_0HShmkQsQGbI57F-hv1seOSkYsEcq7ZNWaxeOUl2Xf8xvolMntnABmsiYN2L8dHKpIQmG-LG37a6tvJ\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 31<\/strong><\/p>\n\n\n\n<p>Agregando la escena del Main Menu &#8211; en nuestro caso la llamamos Inicio\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/rFgx11VfS_O38f6pxXv2i-qS0bN_6b7RWH_3M-JSH7XSMELczH9zwMghgyGM4D6TMosbmmg9R98BRgFw2J0ff4FLx4mtyIXkN_aN6NPI4sk3Au9JVZ6VQUuyKpKgr4r3lSYs79J_UXYZ\" alt=\"\"\/><\/figure>\n\n\n\n<p>esto se hace gracias a un canva que agregamos en la escena y lo combinamos con el Panel a su vez dentro del Panel lo que hacemos es agregar botones tal cual como se ve en la imagen dicho botones nos servir\u00e1n para poder comunicarnos con otra escena<\/p>\n\n\n\n<p><strong>Paso 32&nbsp;<\/strong><\/p>\n\n\n\n<p>Creaci\u00f3n de la escena de cr\u00e9ditos<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/XEiCQ40jRik2E8xr5vuZywqt62XXcyuK4wCeCaJ7q8hajqPbpCqdBZgl0zwVNgPgFWrt9CXya1mpjlZ5E_MQRg5F7oMxm8LJrTi1ZvadFIUutj-tfZMBAIS9gwjDK_L5knzzSqnbtWXB\" alt=\"\"\/><\/figure>\n\n\n\n<p>se hace de la misma manera la \u00fanica diferencia es que nosotros mismo creamos todo la parte del background donde se nombra la universidad, los autores que lo hicieron mas el trabajo para quien iba dirigido<\/p>\n\n\n\n<p><strong>Paso 33&nbsp;<\/strong><\/p>\n\n\n\n<p>Creaci\u00f3n de la escena final<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/3IB0dTEiRqgWFboxivcjN72nYHaYaC1J8Q3hMUbVGv62Wty8tZfssYDektZ0kjLXJ3LN2_tuRU8uKZ0koCwWs9R9IA-26SzEZNWuMcNpRmIAIADNNM5nGILKIOF_ijs3jP1K4Wv-kpVa\" alt=\"\"\/><\/figure>\n\n\n\n<p>se hace lo mismo que en las escenas anteriores, el script es el mismo simplemente se agrega un nuevo archivo de script y se hace el c\u00f3digo que ya se ha venido mostrando anteriormente debe volvernos a la escena que necesitamos<\/p>\n\n\n\n<p><strong>Paso 34<\/strong><\/p>\n\n\n\n<p>Agregar las fichas de ajedrez en prefab esto se va hacer para poder reutilizar en el nivel 2, con esto vamos a poder utilizar las animaciones que se tienen para dichas fichas, esto se coloca en las carpetas de prefabs, creamos una nueva carpeta llamada ChessPiecker y ah\u00ed agregamos las fichas que necesitamos con sus respectivas animaciones&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/-X9VTmHv3e2ucuEuBtGHo0FCNY41OMIYszhykO3Nzfbm0XV40lqNGHLvyQ7WG_65ycUtRqzN-RPqknKvsCaQMDxb0xYZug3X1h-4EYSpbBYMUx7iOLe0ywGxVAPRjzt9qpCwS4E8siV6\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 35&nbsp;<\/strong><\/p>\n\n\n\n<p>Vamos a empezar a construir el nivel 2 para esto se crea una nueva escena en el cual la vamos a llamar escena 2, pero antes de eso lo que vamos a necesitar es ir a la asset store y descargar el paquete llamado <strong>LowpolyBrickHouses<\/strong>, este nos va a servir tambi\u00e9n para la creaci\u00f3n del mapa del segundo nivel<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/vejaUExN3Kn8tQQldILDL_hB6-fQo1K2Hr4cYsFU8QKeNDMEunU-oaycaaeDK9cr7jWC3Ke33NsheNwks33kH0Bq5f819HOySDXG7OBz_uzot9-HRRYTXCBaTedvCeVwkCVp48y-ZRe3\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 36&nbsp;<\/strong><\/p>\n\n\n\n<p>Una vez realizado eso lo que vamos a hacer es ir nuevamente al <strong>Package Manager <\/strong>y vamos a importar el paquete que estamos agregando anteriormente una vez eso, dentro de asset se nos va a crear una nueva carpeta llamada <strong>BrokenVector<\/strong> y ah\u00ed es donde estar\u00e1 los paquetes que vamos a necesitar para agregar a nuestro nuevo mundo del nivel 2 (esto si lo pueden hacer al gusto de cada uno es solo de los paquetes descargados colocarlos como uno quiera y ya)<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/7uKijgkm0aWA1gDDIRr3cb6T0loZ5zQ7biYwMlE4swBZQEATmvIg-X00-hgSsFkuOw1ukk6S2TbJLqSBvcCyjORsxH9EZg700NYbaHwrkPIvjsjaKbNxk-XOL_LtROog4K-UGl6UsHlT\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 37<\/strong><\/p>\n\n\n\n<p>Como ya se ha venido explicando anteriormente en la carpeta de prefabs ya tenemos varias cosas entonces lo que se va hacer ahora es que se va a colocar los mismos paquetes que se ten\u00eda para el nivel 1 la \u00fanica diferencia es que si quiere pasar de nivel lo que tiene que hacer es comer 8 panes si come 8 panes si podr\u00e1 pasar de nivel<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/mVwOwWQf65t3sth2smF2znnd1orLklVHynfmSc2Qczz34Xfo0ZXwlF5uVu3ovfn4k8PQeK1zl66okYtkLmfcEBpKYG-jhjTnRHmk21Ehq645blJXRJ8N2t7s4Gbq7cY-oP_QyPysUfPW\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 38&nbsp;<\/strong><\/p>\n\n\n\n<p>Una vez finalizado la colocacion de los objetos que queremos para que se ha divertido el nivel, lo que vamos hacer es que vamos a ir a la carpeta de los scripts y vamos abrir el script que se llama Control&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/L2rF1TTSGbNo0y0OQ6vKK7hciWf8QEOUbX1c1Ma8TVCfSgf2JIJhG6mpglBz-CLlRn5g8ygoQoxAX82SScSg1BkgQWNcgh_hEvMDLQfJfFsF5k_ASGwBO2z_J1X1FolgP4jf_Rhbbwjb\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 39<\/strong><\/p>\n\n\n\n<p>Una vez abierto el archivo de Control lo que vamos hacer es que dentro del m\u00e9todo de void Start vamos a colocar una nueva variable que en nuestro caso se llamar\u00e1 bread y se inicia liza en 0, despu\u00e9s vamos a crear un nuevo m\u00e9todo llamado AddBread que nos contendr\u00e1 la l\u00f3gica para sumando los panes absorbidos, y que despu\u00e9s de 8 entonces me mande a otra escena\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/PoqquMo2eLEBRk6j1l6fe-k-ys5F_YLn7C2MWsnd-3kgE5LoURpDtnc6c2yTplPAnyed8xeTKBmpNDUVj8dZIK24DNsBN_4Ohh1z6yJQ7BToZiwteesHwI6rN9bellDp1CUHULh4933w\" alt=\"\"\/><\/figure>\n\n\n\n<p>C\u00f3digo del script de la funci\u00f3n de AddBread()<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public static void AddBread()\n{\n    c.bread++;\n\n    c.breadUI.text = c.bread + \"\";\n\n    if(c.bread == 8)\n    {\n        \/\/ Obtener el \u00edndice de la escena actual\n        int currentSceneIndex = SceneManager.GetActiveScene().buildIndex;\n\n        \/\/ Calcular el \u00edndice de la siguiente escena\n        int nextSceneIndex = currentSceneIndex + 1;\n\n        \/\/ Verificar si la siguiente escena existe en los build settings\n        if (nextSceneIndex &lt; SceneManager.sceneCountInBuildSettings)\n        {\n            \/\/ Cargar la siguiente escena\n            SceneManager.LoadScene(nextSceneIndex);\n        }\n        else\n        {\n            Debug.Log(\"No hay m\u00e1s escenas para cargar.\");\n        }\n    }\n\n}<\/code><\/pre>\n\n\n\n<p><strong>Paso 40<\/strong><\/p>\n\n\n\n<p>Una vez agregado esta funcion en el script de Control lo que vamos a hacer es que vamos a crear un nuevo archivo de script llamado Bread, dicho archivo de script lo que va hacer es que nos va a servir para recoger los panes validar que sean 8 y darle animacion al pan y por ultimo lo que hara es destruir el game object&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/0PyJaAHZXUTbLMo_GhD0_pZv-BnuuJK4IxqpI-HU3ODteWgg4Fy8fOia_koQTZ4lEBjXkF-Lq7fcbey4mCSFxm8uf9P_Rfq9y1krrTSHc-k_Cqlr97_pAF5PGhvJ4Nao-4oKt_WJvYQi\" alt=\"\"\/><\/figure>\n\n\n\n<p>C\u00f3digo del script del archivo de Bread<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using System.Collections;\nusing System.Collections.Generic;\nusing UnityEngine;\n\npublic class Bread : MonoBehaviour\n{\n    \/\/ Start is called before the first frame update\n    void Start()\n    {\n        \n    }\n\n    \/\/ Update is called once per frame\n    private void OnTriggerEnter(Collider c)\n    {\n        if (c.CompareTag(\"Player\"))\n        {\n            Control.AddBread();\n            Animate.PotatoIn();\n            Destroy(this.gameObject);\n        }\n        \n    }\n}\n<\/code><\/pre>\n\n\n\n<p><strong>Paso 41<\/strong><\/p>\n\n\n\n<p>Como se hizo en el nivel anterior y es que se va a crear el script de Bread a cada componente del pan, esto para que funcione la parte del codigo que se agreg\u00f3 anteriormente<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/HyHZDVEOLkeh4AfwaDlEdoJrsvg1RmiOy5lBgEyBy1UDyC_PamejB38aaf3ffTyqx9dKsVAaUeL1sfLzG_7kHZq1sGE4qMo9g1V8PhuCY6GyU3pi7n1_xLeJtWPz1E-qbaiyDnoIEuHF\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 42<\/strong><\/p>\n\n\n\n<p>Tambi\u00e9n como en el nivel anterior lo que vamos hacer es agregar al componente el script llamado <a href=\"https:\/\/docs.unity3d.com\/es\/2019.4\/Manual\/class-CharacterController.html\">Player Controller<\/a> esto para que funcione la parte de la c\u00e1mara, del joystick, la velocidad y salto\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/uHHRKdpGqA1ZGJTYmq6rljNitghuM-zJnw7EJfmSlvusfS5M95JIVMAOkASzhkHofBGg8p5HbXlveuvgfBILpIiMg2ybAAliR_tuub2-AtJbdHrkyv1rHLTBXnK7RWANsOJYKZk11zHP\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 43<\/strong><\/p>\n\n\n\n<p>Creamos una nueva escena que diga Nivel 3, donde vamos a crear nuestro \u00faltimo nivel<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/SjSeeEN0SneHi8-Ok8-4PsB-sEBXEqn_lgM98Edn3gEj4C-fC47CiUaBYQO4turPKmtd1ViDjfE11ngLVSwkKothVW4sRpNm_r73TBm5XEW5rmtnSXrMrYAa8m1NDlYnSPdchWxVVqCw\" alt=\"\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>Paso 44<\/strong><\/p>\n\n\n\n<p>Vamos nuevamente a la asset store y vamos a buscar un nuevo paquete llamado <strong><a href=\"https:\/\/assetstore.unity.com\/packages\/essentials\/starterassets-firstperson-updates-in-new-charactercontroller-pac-196525\">StarterAssets<\/a><\/strong>, le damos click en el bot\u00f3n que dice <strong>Add to My Assets\u00a0<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/DdyzSxN2ZXYqGfj0ZjYYw5bUrAzcet7iZ7fI6BpWv8rtB-PvEd_n-WZcZc4adQpu7mtYnMv1n2uf78a-_4aPrnXOMtIuIjBnIRAz0W-AVNTFUcuHhHF60IFBan_nymeItLOcl2ZQWsUv\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 45<\/strong><\/p>\n\n\n\n<p>Vamos nuevamente a Package Manager le damos es descargamos y despu\u00e9s lo importamos, esto se nos colocara igualmente en assets en una carpeta llamada <strong>StarterAssets<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/n4w8pyEHFH8AcPNMdWW6sZfO7AtRG539AUunjgwhvDkg34P9G6HwpOsZI-lhEoXX8ZXhhrsH3N08xZ1jR_62tNcdFf3CQLwxoNk0gF3wV08yq4pL1oEjztDr_c8zW4-w-EOw0W6gawNY\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 46<\/strong><\/p>\n\n\n\n<p>Ahora lo que vamos hacer primero que todo es importar el personaje mas que todo que si recordamos lo tenemos en la carpeta llamada Characters dentro de Main Characters, vamos agregar dicho personaje<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/r8r1uWJUxEcaxUvpCGZxQ5ODvM9Sv7bLI5ha0LmiTBLEAamql017Nqw6T55N0MgY24i5d9DNo7ko2IRH_KvCL66hHUf6lMdntBFX436Ugx2PFWKqxo9gyWiiVndqGQfh43m6PrVBI_fe\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 47<\/strong><\/p>\n\n\n\n<p>Lo que hacemos ahora es que vamos a hacer la parte del mapa con el paquete que descargamos de <strong>StarterAssets, <\/strong>esto ya se crea al gusto&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/3nzirXz5DFLLtDyEwDsclf_cBO2HUp3d5rXaF17TEJ4rNhyc9pOUdi0aTPRfk63qL1YdpjzdCGbDmX1Gmo73EfdGFE_ySouOiAomEKjZO5kB3ejnmDHe612ulXngfDuzj_zB5hamTKch\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 48<\/strong><\/p>\n\n\n\n<p>Lo que haremos ahora es agregar la union del personaje que estamos utilizando anteriormente al mapa que acabamos de hacer, vamos a ubicar el personaje dentro del mapa&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/V6cYHWvnx0_g9ZOIbIBsEDIfIaHBxkqZZja6K01DpXLI8i4wEHRvu0CWE43gqCWc_V8o1pGQMFSkZK1dEQUA6zfK1QrxPvnaQV93gp66eRUYD_foOi0GeOYnatgXsTu80D2n0HadYWXX\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 49<\/strong><\/p>\n\n\n\n<p>Lo que vamos a hacer ahora es que vamos agregar unos componentes al personaje que vamos a utilizar como el animator el script correspondiente y el character controller, esto se hace para que pueda seguir funcionando como ha funciona anteriormente&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/0JnqqSUIbXcrhnBrvtQ24GJOxgX76SBNx67T9F_dB2UaSyY1XUtHN0SFV1mOsK_p6sdlKWlzudRvF2pDbMyNFAmi92w4NVL2aETLjBvZxt8LCsoJa8bsjDbLGjkAmTef2kbV8bvtkudS\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 50&nbsp;<\/strong><\/p>\n\n\n\n<p>Antes de agregar el script lo que vamos hacer es que vamos agregar el canva donde tendremos la parte del joystick, entonces vamos a hacer eso&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/1BYiHCVbLbTE0oPv6-B2PwboIYFnKGaMi-2ZYp6kStcIr5ttHetfgRmxUzoY10YnOQxbV--jwG2L_bsTNwSHSbgWr0d-4APOXVOqHNJSre66j253CrtLSMxZomr05tJSB917lbxbH9LL\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 51<\/strong><\/p>\n\n\n\n<p>Lo que vamos hacer ahora es colocar el timer los fps los objetos que queremos que recoja para este nivel la idea es que s\u00ed recoge los 6 objetos entonces ya gana y se acaba el juego pero si no lo logra durante 10 minutos entonces pailas se le vuelve a reiniciar el mapa<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/au1dG4OWbL9O4bySt98WN3_fL3bLy0XVh4365VngvPadycMiKml4A1pt2udGk8PmYOM-MljM8ekp97Nc-wwskRiP0K5YB3QPUPeWmxbdwJYcnI7BV_V5RO2UjhsHF2R6mPW8qSQ8IS6x\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 52<\/strong><\/p>\n\n\n\n<p>Ahora lo que haremos ser\u00e1 colocar los scripts correspondientes para la parte del canvas que b\u00e1sicamente es la parte de la animaci\u00f3n de cada \u00edtem que colocamos tambi\u00e9n es la contabilizaci\u00f3n del tiempo y el c\u00e1lculo de cada fps que tenemos en el m\u00f3vil<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/Q5PdgzJYAuzPYtUnu48sIT6f4_k2VVjksPrR-IB6s9stsloSDZDjB1FcSD4PrAPpgWBHbXD9JTkSjy07QNN6CQybx6l5GmsH3ktWI9C12hQmRiWUcFwn4-vavc4qPOJGUPmBkXMH_GW9\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 53<\/strong><\/p>\n\n\n\n<p>Ahora lo que vamos hacer es que vamos agregar todos los elementos que queremos para este nivel, para este nivel vamos a tener todos pero la idea es que los peones sean los mas importantes ya que son los que nos hacen acabar dicho juego<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/RIGnH59MnO98he3haGGBafJff1show7XE2MljZ_pj8Q8fRwZNUiLcXxHkxH3H1l0KzCby9YJfKVTLWyV44YVjF85C1fBW0FFiiEnESLN2AnE7TnDI7eLLO2FYtVeTcSWjvB8EKBiCtd_\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 54<\/strong><\/p>\n\n\n\n<p>Ahora lo que vamos hacer es que vamos ajustar el c\u00f3digo, as\u00ed que abrimos el script de control y vamos a la funci\u00f3n de <strong>AddChessPieces <\/strong>para que cada vez que completen la mesa de ajedrez ya finalice el juego<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/ZIiDrVLfBNLWdkFEr43121H-l61NNuJLA4mpTwUerLZe73988X9W07JXZA3_n0RZ41Ip9OKgb9b2ALPWD6oxdXJhbFdjSWQJNys2I3jTnpg1w1Z3Yi66iRbseUf8UA-O_M9exYwTNMTr\" alt=\"\" style=\"width:691px;height:auto\"\/><\/figure>\n\n\n\n<p>C\u00f3digo de la funci\u00f3n de AddChessPieces <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public static void AddChessPieces(byte piece)\n{\n    c.ChessPieces&#91;c.world, piece] = true;\n\n    if (Control.CheckChessPieces())\n    {\n        Debug.Log(\"All chess pieces collected! Changing scene.\");\n\n        \/\/ Obtener el \u00edndice de la escena actual\n        int currentSceneIndex = SceneManager.GetActiveScene().buildIndex;\n\n        \/\/ Calcular el \u00edndice de la siguiente escena\n        int nextSceneIndex = currentSceneIndex + 1;\n\n        \/\/ Verificar si la siguiente escena existe en los build settings\n        if (nextSceneIndex &lt; SceneManager.sceneCountInBuildSettings)\n        {\n            \/\/ Cargar la siguiente escena\n            SceneManager.LoadScene(nextSceneIndex);\n        }\n        else\n        {\n            Debug.Log(\"No hay m\u00e1s escenas para cargar.\");\n        }\n    }\n}<\/code><\/pre>\n\n\n\n<p>este c\u00f3digo lo que hace principalmente es evaluar que exista m\u00e1s escena despu\u00e9s de la de nosotros y esto lo valida desde la pesta\u00f1a de Build Settings, esto es importante porque toma en cuenta el orden que tenga las escenas en nuestro caso el orden de las escenas por el momento va as\u00ed\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"642\" height=\"605\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image.png\" alt=\"\" class=\"wp-image-52356\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image.png 642w, https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image-300x283.png 300w\" sizes=\"auto, (max-width: 642px) 100vw, 642px\" \/><\/figure>\n\n\n\n<p><strong>Paso 55<\/strong><\/p>\n\n\n\n<p>Creaci\u00f3n de la escena de instrucciones, para esto vamos a crearlo personalizada mente para ello lo que vamos hacer es primero hacer un <a href=\"https:\/\/www.figma.com\/community\/file\/826780887431188287\">Card <\/a>de cada nivel como son 3 ser\u00e1n 3 cards para esto nos vamos apoyar en <a href=\"https:\/\/www.figma.com\/design\/B4zz9PbApzV9nPYD15d9YM\/Untitled?node-id=0-1&amp;t=XfncuurkPLnsNtut-0\">Figma<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/1hhpxaXdRLuX14wk6iJtL3W_LDLakR-A7V8Xg66b9UokOmhRMvljyBPFeyvKTqES8AaP9TDo_8w1fmblsrZ0CQslemi_CVSCrmGLW2OmBNjwJPVbVUyy7fD3YM5N2aE11Qa-bvh2KiXa\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 56<\/strong><\/p>\n\n\n\n<p>Lo que se necesita ahora es personalizar estas cards en una sola imagen con el tema de las instrucciones para ello nos vamos ayudar de un powerpoint&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/pCNt3NwAGoFvMd9_fB1Pl4hn_DeEjYYlU6B-Iqm1pv1F-nFT285s4ZAUjGJdybJc33lu3-7ygPtzu9Xl_g9Wx5THMCAEUPynZNeEPb7-wnMdTDzr7JDgFvJ5Tk4XVHkXPpu3RlUpkMvx\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 57<\/strong><\/p>\n\n\n\n<p>Ahora procederemos a crear una nueva escena llamada Instrucciones y la vamos a colocar al principio del juego para que el usuario vea que es lo que tiene que hacer&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/UI7yxV__PSKuKn2hlT5gYtHnedzTjEVizTVZWX7pYvjROOA8qWOTZIOa4-N8H9irTi43g4qYjla5ySrb2jqq6GAQKiFKg07YTEVEupzLZhaUm1_x7g1Yqwxt7MKQlo9OX4V1jN3C2TL_\" alt=\"\"\/><\/figure>\n\n\n\n<p>Script que nos permite el dicho cambio de escena<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using System.Collections;\nusing System.Collections.Generic;\nusing UnityEngine;\nusing UnityEngine.SceneManagement;\n\npublic class Irinstrucciones : MonoBehaviour\n{\n    public void Instrucciones()\n    {\n        SceneManager.LoadScene(\"Instrucciones\");\n    }\n}\n<\/code><\/pre>\n\n\n\n<p><strong>Paso 58&nbsp;<\/strong><\/p>\n\n\n\n<p>En la nueva escena que se cre\u00f3 lo que se va hacer ahora es crear un nuevo <a href=\"https:\/\/docs.unity3d.com\/es\/530\/Manual\/UICanvas.html\">canva <\/a>y a ese mismo canva le agregamos el bot\u00f3n y el fondo con el que terminamos de hacer en powerpoint, para exportar una imagen a la parte de 3d se tiene que hacer de esta manera<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/WHkQsuwNVa8oC-gO5H3xq6tla8354VJ74bhPeTDjW1i6gZ6Ev53JGPN1yEAm5rw7HEUTcklunmr2m4hS0ZTk94QX38gw7PhHdeP91TCIH16jd-y0MFP4qksxksRQ-0xGakHcLTalEK8Y\" alt=\"\"\/><\/figure>\n\n\n\n<p>entonces lo que se tiene que hacer es que en Texture type se le cambia a 2d y UI con eso ya despu\u00e9s se puede colocar en la parte del panel y listo&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/czc30aj9zFJh5dNPvnPoQBRJXoD0UYTuFpIG2GI2kaz7djS7bYD2CKsIMQ96KNmHfGbK6I2UP5zgZMO-HvCDm-FRio-LKCMJPl30LTxhhHDav2_XdbdfjlFd7oShyPA3D_sH-3dnbZ1e\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 59<\/strong><\/p>\n\n\n\n<p>Creaci\u00f3n del bot\u00f3n que nos va a permitir devolvernos al principio del juego y de su funcionalidad, esto se hace en la parte del panel que est\u00e1 en el canva\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/7M2BlLddn3q35d8tgOSQJExP8p4KV1jb8uV3aEJIN2gdngUSyPDPSBR25jfknJ9AEe2kbSOlV1k6OHzsjEm6QiogHadZDRB60YlGi-1U_iADKO_PPXBTZr8M9YDLuBpcb1vz5u9oV1Gm\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Paso 60<\/strong><\/p>\n\n\n\n<p>Una vez se crea el bot\u00f3n y se crea el script que nos va a servir para este caso para irnos a la escena de jugar entonces se crea un empty object y ah\u00ed se mete el script que vamos a utilizar\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/9TmQ6eVIhDP9cd_xuyLi_uMlx-zt0HXeqEiW56nTKJVognRfC-rLqiC-O9Rd_vfeEB4A3getCdkK82jlnT--nym3Lk2m06wJbGY2zfw3xctSrd2zKvD2wDt5d7Y2lhjgeMENzqwTQ9DO\" alt=\"\"\/><\/figure>\n\n\n\n<p>Script para Jugar de nuevo<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using System.Collections;\nusing System.Collections.Generic;\nusing UnityEngine;\nusing UnityEngine.SceneManagement;\nusing UnityEngine.UI;\n\npublic class JugardeNuevo : MonoBehaviour\n{\n    public void JugarDeNuevo()\n    {\n\n        SceneManager.LoadScene(\"Nivel 1\");\n    }\n}\n<\/code><\/pre>\n\n\n\n<p><strong>Paso 61&nbsp;<\/strong><\/p>\n\n\n\n<p>Ahora lo que se hace es que ese gameObject se agrega en la acci\u00f3n del onClick del bot\u00f3n y buscamos la funci\u00f3n que hicimos para hacer el cambio de escena\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/rGGePr3C0ZWh5ketzUGyN8TNDneEGeeeEtNdikPyX1wuo-X-3xJEZ9w0LqXQes9ZlzU11-ILQCe3s6Ad1i5VhdayIzB2V43xRxJf2-KHO6k1bxkYDtzSDb8NsmrF28veHZn7RLpBIn-p\" alt=\"\"\/><\/figure>\n\n\n\n<p>Recordar siempre mirar que nuestro Builds Settings siempre tenga todas las escenas que vamos a utilizar sino entonces no servir\u00e1 algunas configuraciones que hemos realizado\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"642\" height=\"605\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image-1.png\" alt=\"\" class=\"wp-image-52357\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image-1.png 642w, https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image-1-300x283.png 300w\" sizes=\"auto, (max-width: 642px) 100vw, 642px\" \/><\/figure>\n\n\n\n<p><strong>Paso 62<\/strong><\/p>\n\n\n\n<p>Lo que vamos hacer ahora es la parte de generar el apk, pero antes de generar el apk lo que vamos hacer es que vamos hacer algunos ajustes en el <a href=\"https:\/\/docs.unity3d.com\/es\/530\/Manual\/class-PlayerSettings.html\">Player Settings<\/a> es mas que todo la parte de como queremos que se muestre nuestro juego, entonces vamos a la parte de Player Settings en la seccion de Player<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"946\" height=\"581\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image-2.png\" alt=\"\" class=\"wp-image-52358\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image-2.png 946w, https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image-2-300x184.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image-2-768x472.png 768w\" sizes=\"auto, (max-width: 946px) 100vw, 946px\" \/><\/figure>\n\n\n\n<p>es recomendable si no se tiene ninguna compa\u00f1\u00eda o ninguna empresa que tenga asociaci\u00f3n con unity entonces es mejor dejar el DefaultCompany, ya que si este juego lo que se quiere es comercializar si se tiene el nombre de una empresa Unity no lo deja hasta que actualice el <a href=\"https:\/\/store.unity.com\/es\/configure-plan\/unity-industry?currency=USD&amp;free_trial_product=false\">plan de Empresa<\/a>, por otro lado si es bueno manejar un versionamiento esto se hace es mas que todo para el tema de los relases ya que si se encuentra un bug pues uno lo puede corregir y despu\u00e9s lo que hace es que actualiza ese versionamiento <\/p>\n\n\n\n<p><strong>Paso 63<\/strong><\/p>\n\n\n\n<p>Finalmente para terminar con la configuraci\u00f3n del Player lo que necesitamos hacer tambi\u00e9n es Generar una Key esto se hace en la opci\u00f3n llamada <a href=\"https:\/\/docs.unity3d.com\/Manual\/PublishingBuilds.html\">Publishing Settings<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"949\" height=\"577\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image-3.png\" alt=\"\" class=\"wp-image-52359\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image-3.png 949w, https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image-3-300x182.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image-3-768x467.png 768w\" sizes=\"auto, (max-width: 949px) 100vw, 949px\" \/><\/figure>\n\n\n\n<p><strong>Paso 64<\/strong><\/p>\n\n\n\n<p>Lo que haremos es ahora crear dicha contrase\u00f1a tenemos que crear esa contrase\u00f1a y se necesita tambi\u00e9n crear un alias, le damos click donde dice KeyStoreManager, le damos en la opci\u00f3n donde dice create new \/ anywhere y llenamos los datos y le agregamos el alias con su respectiva contrase\u00f1a<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"503\" height=\"490\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image-4.png\" alt=\"\" class=\"wp-image-52360\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image-4.png 503w, https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image-4-300x292.png 300w\" sizes=\"auto, (max-width: 503px) 100vw, 503px\" \/><\/figure>\n\n\n\n<p><strong>Paso 65<\/strong><\/p>\n\n\n\n<p>Agregamos la contrase\u00f1a que hemos creado con su respectivo alias y contrase\u00f1a pero tenemos que estar seguros de que marcamos el Custom KeyStore, si esto no se hace el build no nos va a dejar generar el APK<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"678\" height=\"177\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image-5.png\" alt=\"\" class=\"wp-image-52361\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image-5.png 678w, https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image-5-300x78.png 300w\" sizes=\"auto, (max-width: 678px) 100vw, 678px\" \/><\/figure>\n\n\n\n<p><strong>Paso 66 <\/strong><\/p>\n\n\n\n<p>Una vez hecho eso lo que hacemos es darle click en donde dice Build, esto nos abrir\u00e1 el explorador de archivos y nos dir\u00e1 donde queremos guardar y con que nombre, es importante dejar la extensi\u00f3n .apk, le agregamos un nombre y le damos en guardar<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"500\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image-6-1024x500.png\" alt=\"\" class=\"wp-image-52362\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image-6-1024x500.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image-6-300x147.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image-6-768x375.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image-6-1536x750.png 1536w, https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image-6.png 1640w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><strong>Paso 67<\/strong><\/p>\n\n\n\n<p>Una vez terminado la parte del build lo que va hacer es que nos va a dejar el apk en la ruta que se selecciono y ya estar\u00e1 listo para jugar tenemos que  tener en cuenta que para nuestro caso este v\u00eddeo juego solo va a poder servir para dispositivos android desde el 7 en adelante si un android con menor al 7 intenta abrir el juego no lo va a dejar por la parte de configuraci\u00f3n que se le hizo <\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"850\" height=\"408\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image-7.png\" alt=\"\" class=\"wp-image-52363\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image-7.png 850w, https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image-7-300x144.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image-7-768x369.png 768w\" sizes=\"auto, (max-width: 850px) 100vw, 850px\" \/><\/figure>\n\n\n\n<p><strong>Resultado Final<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"423\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image-8.png\" alt=\"\" class=\"wp-image-52364\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image-8.png 758w, https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/image-8-300x167.png 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/figure>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li><strong>Referencias&nbsp;<\/strong><\/li>\n<\/ol>\n\n\n\n<p>Unity. (n.d.). Free Slavic Medieval Environment &#8211; Town Interior and Exterior [Unity Asset Store]. Unity Technologies. Retrieved May 25, 2024, from<\/p>\n\n\n\n<p><a href=\"https:\/\/assetstore.unity.com\/packages\/3d\/environments\/fantasy\/free-slavic-medieval-environment-town-interior-and-exterior-167010\">https:\/\/assetstore.unity.com\/packages\/3d\/environments\/fantasy\/free-slavic-medieval-environment-town-interior-and-exterior-167010<\/a><\/p>\n\n\n\n<p>Unity. (n.d.). Forest Low Poly Toon Battle Arena &#8211; Tower Defense Pack [Unity Asset Store]. Unity Technologies. Retrieved May 25, 2024, from <a href=\"https:\/\/assetstore.unity.com\/packages\/3d\/environments\/forest-low-poly-toon-battle-arena-tower-defense-pack-100080\">https:\/\/assetstore.unity.com\/packages\/3d\/environments\/forest-low-poly-toon-battle-arena-tower-defense-pack-100080<\/a><\/p>\n\n\n\n<p>Dev Ritch. (2024, mayo 23). C\u00f3mo cambiar de nivel y poner una barra de carga en Unity || Tutorial Unity 2024 [Video]. YouTube. <a href=\"https:\/\/www.youtube.com\/watch?v=ZjNOphxQ1OM\">https:\/\/www.youtube.com\/watch?v=ZjNOphxQ1OM<\/a><\/p>\n\n\n\n<p>YouTube. (n.d.). Resultados de b\u00fasqueda para &#8220;videojuego 3D Unity&#8221;. Retrieved May 25, 2024, from <a href=\"https:\/\/www.youtube.com\/results?search_query=videojuego+3d+unity\">https:\/\/www.youtube.com\/results?search_query=videojuego+3d+unity<\/a><\/p>\n\n\n\n<p>Pinz\u00f3n, R. (2024). Computaci\u00f3n Gr\u00e1fica &#8211; Instalaci\u00f3n de Unity. Universidad Central<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introducci\u00f3n El desarrollo de videojuegos Unity en 3D se ha convertido en una habilidad esencial dentro del campo de la computaci\u00f3n gr\u00e1fica y la programaci\u00f3n. Unity, una de las plataformas m\u00e1s populares y vers\u00e1tiles para la creaci\u00f3n de videojuegos, ofrece herramientas robustas para dise\u00f1ar y desarrollar juegos inmersivos y deSeguir Leyendo<\/p>\n","protected":false},"author":1348,"featured_media":52349,"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":[1309,30,77],"tags":[116,1757,31,214,66],"class_list":["post-52345","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-computacion-grafica","category-niixer","category-videojuegos","tag-android","tag-computacion-grafica-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>The Truman Show Videojuego - Android Unity 3D &#8211; Portal de noticias de tecnolog\u00eda, Realidad Virtual, Aumentada y Mixta, Videojuegos<\/title>\n<meta name=\"description\" content=\"En Portal de noticias de tecnolog\u00eda, Realidad Virtual, Aumentada y Mixta, Videojuegos encuentra los mejores contenidos del mundo de la tecnolog\u00eda | The Truman Show Videojuego - Android Unity 3D\" \/>\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\/2024\/06\/01\/the-truman-show-videojuego-android-unity-3d\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Truman Show Videojuego - Android Unity 3D &#8211; Portal de noticias de tecnolog\u00eda, Realidad Virtual, Aumentada y Mixta, Videojuegos\" \/>\n<meta property=\"og:description\" content=\"En Portal de noticias de tecnolog\u00eda, Realidad Virtual, Aumentada y Mixta, Videojuegos encuentra los mejores contenidos del mundo de la tecnolog\u00eda | The Truman Show Videojuego - Android Unity 3D\" \/>\n<meta property=\"og:url\" content=\"https:\/\/niixer.com\/index.php\/2024\/06\/01\/the-truman-show-videojuego-android-unity-3d\/\" \/>\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=\"2024-06-02T03:54:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-06-02T03:54:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/the-truman-show-31-5-2024-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"222\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Johann Sebasti\u00e1n Gomez\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Johann Sebasti\u00e1n Gomez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"35 minutos\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The Truman Show Videojuego - Android Unity 3D &#8211; Portal de noticias de tecnolog\u00eda, Realidad Virtual, Aumentada y Mixta, Videojuegos","description":"En Portal de noticias de tecnolog\u00eda, Realidad Virtual, Aumentada y Mixta, Videojuegos encuentra los mejores contenidos del mundo de la tecnolog\u00eda | The Truman Show Videojuego - Android Unity 3D","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\/2024\/06\/01\/the-truman-show-videojuego-android-unity-3d\/","og_locale":"es_ES","og_type":"article","og_title":"The Truman Show Videojuego - Android Unity 3D &#8211; Portal de noticias de tecnolog\u00eda, Realidad Virtual, Aumentada y Mixta, Videojuegos","og_description":"En Portal de noticias de tecnolog\u00eda, Realidad Virtual, Aumentada y Mixta, Videojuegos encuentra los mejores contenidos del mundo de la tecnolog\u00eda | The Truman Show Videojuego - Android Unity 3D","og_url":"https:\/\/niixer.com\/index.php\/2024\/06\/01\/the-truman-show-videojuego-android-unity-3d\/","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":"2024-06-02T03:54:22+00:00","article_modified_time":"2024-06-02T03:54:23+00:00","og_image":[{"width":1024,"height":222,"url":"https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/the-truman-show-31-5-2024-1.png","type":"image\/png"}],"author":"Johann Sebasti\u00e1n Gomez","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Johann Sebasti\u00e1n Gomez","Tiempo de lectura":"35 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/niixer.com\/index.php\/2024\/06\/01\/the-truman-show-videojuego-android-unity-3d\/#article","isPartOf":{"@id":"https:\/\/niixer.com\/index.php\/2024\/06\/01\/the-truman-show-videojuego-android-unity-3d\/"},"author":{"name":"Johann Sebasti\u00e1n Gomez","@id":"https:\/\/niixer.com\/#\/schema\/person\/0fca8294116c2f545beaaf9256d00267"},"headline":"The Truman Show Videojuego &#8211; Android Unity 3D","datePublished":"2024-06-02T03:54:22+00:00","dateModified":"2024-06-02T03:54:23+00:00","mainEntityOfPage":{"@id":"https:\/\/niixer.com\/index.php\/2024\/06\/01\/the-truman-show-videojuego-android-unity-3d\/"},"wordCount":4251,"publisher":{"@id":"https:\/\/niixer.com\/#organization"},"image":{"@id":"https:\/\/niixer.com\/index.php\/2024\/06\/01\/the-truman-show-videojuego-android-unity-3d\/#primaryimage"},"thumbnailUrl":"https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/the-truman-show-31-5-2024-1.png","keywords":["Android","Computacion Grafica","tecnolog\u00eda","Unity","Videojuegos"],"articleSection":["Computaci\u00f3n Gr\u00e1fica","Niixer","Videojuegos"],"inLanguage":"es"},{"@type":"WebPage","@id":"https:\/\/niixer.com\/index.php\/2024\/06\/01\/the-truman-show-videojuego-android-unity-3d\/","url":"https:\/\/niixer.com\/index.php\/2024\/06\/01\/the-truman-show-videojuego-android-unity-3d\/","name":"The Truman Show Videojuego - Android Unity 3D &#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\/2024\/06\/01\/the-truman-show-videojuego-android-unity-3d\/#primaryimage"},"image":{"@id":"https:\/\/niixer.com\/index.php\/2024\/06\/01\/the-truman-show-videojuego-android-unity-3d\/#primaryimage"},"thumbnailUrl":"https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/the-truman-show-31-5-2024-1.png","datePublished":"2024-06-02T03:54:22+00:00","dateModified":"2024-06-02T03:54:23+00:00","description":"En Portal de noticias de tecnolog\u00eda, Realidad Virtual, Aumentada y Mixta, Videojuegos encuentra los mejores contenidos del mundo de la tecnolog\u00eda | The Truman Show Videojuego - Android Unity 3D","breadcrumb":{"@id":"https:\/\/niixer.com\/index.php\/2024\/06\/01\/the-truman-show-videojuego-android-unity-3d\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/niixer.com\/index.php\/2024\/06\/01\/the-truman-show-videojuego-android-unity-3d\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/niixer.com\/index.php\/2024\/06\/01\/the-truman-show-videojuego-android-unity-3d\/#primaryimage","url":"https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/the-truman-show-31-5-2024-1.png","contentUrl":"https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/the-truman-show-31-5-2024-1.png","width":1024,"height":222},{"@type":"BreadcrumbList","@id":"https:\/\/niixer.com\/index.php\/2024\/06\/01\/the-truman-show-videojuego-android-unity-3d\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/niixer.com\/"},{"@type":"ListItem","position":2,"name":"The Truman Show Videojuego &#8211; Android Unity 3D"}]},{"@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\/0fca8294116c2f545beaaf9256d00267","name":"Johann Sebasti\u00e1n Gomez","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/4cb0b9f290cd176ff6159bfc0c1606bec1497fae33774c0cd44424f7f146a467?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4cb0b9f290cd176ff6159bfc0c1606bec1497fae33774c0cd44424f7f146a467?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4cb0b9f290cd176ff6159bfc0c1606bec1497fae33774c0cd44424f7f146a467?s=96&d=mm&r=g","caption":"Johann Sebasti\u00e1n Gomez"},"sameAs":["http:\/\/www.niixer.com"],"url":"https:\/\/niixer.com\/index.php\/author\/jgomezb7\/"}]}},"jetpack_featured_media_url":"https:\/\/niixer.com\/wp-content\/uploads\/2024\/06\/the-truman-show-31-5-2024-1.png","_links":{"self":[{"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/posts\/52345","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\/1348"}],"replies":[{"embeddable":true,"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/comments?post=52345"}],"version-history":[{"count":10,"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/posts\/52345\/revisions"}],"predecessor-version":[{"id":52365,"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/posts\/52345\/revisions\/52365"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/media\/52349"}],"wp:attachment":[{"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/media?parent=52345"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/categories?post=52345"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/tags?post=52345"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}