Conexiones con API
Clase 19 de 32 • Curso de Programación 2D con Unity: Intermedio
Resumen
¿Cómo comunicarnos con una API externa usando Unity?
En el apasionante mundo de la programación y el desarrollo de videojuegos, la capacidad de interactuar con APIs externas es imprescindible. Imagina poder mostrar el clima real dentro de un juego mediante una conexión API que recoja datos en tiempo real. A continuación, te mostraré cómo puedes lograrlo paso a paso utilizando OpenWeather, una plataforma que te permite obtener datos climáticos de manera gratuita, además te proporcionaré consejos para integrarlo en Unity.
¿Cómo registrarse y obtener una API Key en OpenWeather?
Primero, para usar OpenWeather, es necesario registrarse en su sitio web. Aquí te explico el proceso para comenzar a obtener datos climáticos:
- Registro en OpenWeather: Visita openweathermap.org, accede a la pestaña de API y regístrate en su base de datos.
- Suscripción a CurrentWeatherData: Dentro de la sección API, busca
CurrentWeatherData
y suscríbete. Esta API es gratuita y suficiente para nuestras necesidades iniciales. - Obtener la API Key: Después de suscribirte, busca la opción
Get API Key
, y navega haciaMy API Keys
para obtener tu llave que usarás para realizar peticiones.
¿Cómo comunicarse con la API desde Unity?
Una vez que tengas tu API Key, puedes proceder a configurar Unity para que se comunique con OpenWeather:
-
Preparación del entorno en Unity:
- Crea una carpeta llamada
Weather
y dentro, un script denominadoWeatherChange
. - Este script se encargará de hacer las llamadas a la API y manejar los resultados obtenidos.
- Crea una carpeta llamada
-
Configuración del Script
WeatherChange
:- Remueve los métodos
Start
yUpdate
estándar, ya que no serán necesarios para nuestras comunicaciones. - Agrega el
namespace
necesario para trabajar con APIs:UnityEngine.Networking
.
- Remueve los métodos
-
Creación de un enumerador para la solicitud del clima:
- Los enumeradores permiten manejar esperas en los ciclos de ejecución, fundamentales para esperar respuesta de una API.
using UnityEngine.Networking;
using System.Collections;
public class WeatherChange : MonoBehaviour
{
void Start()
{
StartCoroutine(GetWeather());
}
IEnumerator GetWeather()
{
// Reemplaza 'cityName' y 'APIKey' con tu ciudad y tu clave.
UnityWebRequest www = UnityWebRequest.Get("http://api.openweathermap.org/data/2.5/weather?q=Bogotá&appid=YOUR_API_KEY");
yield return www.SendWebRequest();
if (www.result != UnityWebRequest.Result.Success)
{
Debug.LogError(www.error);
}
else
{
Debug.Log(www.downloadHandler.text);
}
}
}
¿Qué hacer tras obtener los datos de la API?
Una vez configurado tu script y ejecutada la petición a la API:
- Verificación y Debug: Asegúrate de que los datos están correctamente descargados usando
Debug.Log(www.downloadHandler.text)
. - Creación de GameObject: En Unity, agrega un nuevo
GameObject
llamadoWeatherManager
y añadirle el componenteWeatherChange
. - Inicia la Aplicación: Guarda los cambios y ejecuta la aplicación para verificar que está obteniendo y mostrando los datos correctamente en la consola.
Mantente atento a cómo transformaremos estos datos JSON en variables manejables para cambiar el clima de forma interactiva en nuestro juego. Con esta base sólida, estás listo para explorar y manipular datos externos, un aspecto esencial en el desarrollo moderno de aplicaciones interactivas. ¡Continúa aprendiendo y nunca dejes de explorar nuevas fronteras!