Descargar la libreria de LitJson V 0.9.0, otras versiones tienen nuevos features pero en este tutorial me centrare en la version 0.9.0 porque esta cubre todo lo que necesitamos, pueden obtenerlo desde mi drive LitJson.dll o desde el repositorio de GitHub LitJson.
Luego que lo descarguen deben moverlo a su carpeta de assets en el proyecto, pueden hacerlo arrastrandolo desde la carpeta donde lo tengan hasta la zona del proyecto dentro de Unity.
Ahora que tenemos el dll de LitJson creamos una clase que luego usaremos para leer los archivos Json que crearemos
Agregamos la libreria de Input y Output al inicio del script escribiendo:
using System.IO;
El Json que usaremos pueden encontrarlo aqui Weapons.json
Creamos una Carpeta llamada “Files” y dentro de ella arrastramos el archivo.json
Ahora declaramos una variable tipo string en donde guardaremos todo el texto del Json que queremos convertir en objeto y almacenaremos en el, el texto del Json usando el metodo ReadAllText de la clase File, este recibe como parametro la ruta del archivo que queremos leer, para ello usaremos Application.DataPath, que nos devolvera la ruta a carpeta assets y desde ahi navegaremos hasta el archivo Json de la siguiente manera:
Lo siguiente que haremos sera convertir el string en un objeto que podamos manipular, aqui es donde usaremos la libreria LitJson, para ello debemos agregar la referencia al proyecto en caso que no se haya hecho automaticamente y luego escribiremos:
using LitJson;
De esta manera podremos empezar a usar las clases de LitJson en nuestro codigo, si no sabes como agregar una referencia al proyecto ve a este tuto donde te lo explico.
Ahora lo primero que haremos sera declarar una variable tipo JsonData que sera donde almacenaremos el objeto una vez parseado, luego instanciaremos la misma usando la funcion ToObject de la clase JsonMapper en la libreria LitJson, ahora tenemos el objeto Json del cual podemos extraer la informacion que necesitemos
Ahora que sabes como leer data desde un Json, pasemos a escribir data en uno y guardar el archivo dentro de nuestro proyecto, para ello pueden crear una clase a su gusto o pueden usar esta que les dejo yo:
publicclassWeapon
{
publicstring Name;
publicint Damage;
publicWeapon(string Name = "DefaultName", int Damage = 10)
{
this.Name = Name;
this.Damage = Damage;
}
}
El procedimiento ahora es bastante intuitivo, usaremos la misma tecnica pero a la inversa, primero instanciamos una nueva Weapon con los valores que prefieran, luego almacenaremos esa Weapon en un JsonData usando el metodo ToJson de la clase JsonMapper y por ultimo usaremos el metodo WriteAllText de la clase File, donde especificaremos la ruta y nombre del archivo, y enviaremos nuestro JsonData parseado a string, en castellano seria lo siguiente:
Si corremos el juego y vamos a la carpeta Files a primera vista no veremos nada, esto es porque el archivo fue creado en tiempo de ejecucion, damos click derecho en el directorio “Refresh” y deberiamos ver nuestro archivo recien creado.
Espero que este tuto les sirva para sus juegos, les dejare un link al repositorio de GitHub desde el cual podran clonar mi proyecto y asi tenerlo de referencia.
Repo: https://github.com/LeitoUnity/LitJsonPlatziExample
Keep Coding!
With 💚 Leito.